A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhudong100 中级黑马   /  2015-11-20 21:18  /  977 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. #import <Foundation/Foundation.h>
  2. #import "Person.h"
  3. //验证内存管理的原则:谁retain,谁release
  4. int main(int argc, const char * argv[]) {
  5.     @autoreleasepool {
  6.         Person *p = [Person new];
  7.         NSLog(@"retainCount = %ld",[p retainCount]);
  8.         Person *p1 = [p retain];
  9.         NSLog(@"retainCount = %ld",[p retainCount]);
  10.         [p1 release];
  11.         NSLog(@"retainCount = %ld",[p retainCount]);
  12.         [p release];
  13.     }
  14.     return 0;
  15. }
复制代码

按照内存管理的原则中有:谁retain,谁release,可上面的代码中,用p release仍然可以,请问该如何理解?

1 个回复

正序浏览
他们都是拥有同一个对象     遵守这个原则可以不用关心到底+1了多少次,最后 -1多少次。   p计数只要+1  就-1一次 ,成对出现就行了。   
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马