首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

刚学oc,关于引用计数的有关问题

2013-06-25 
刚学oc,关于引用计数的问题为什么打印出的每次都是1,不是应该[p release] 后就-1的吗#import Person.hin

刚学oc,关于引用计数的问题
为什么打印出的每次都是1,不是应该[p release] 后就-1的吗

#import "Person.h"
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        Person *p = [[Person alloc] init];
        NSLog(@"number1-------%ld",[p retainCount]);
        [p setAge:12];
         NSLog(@"number2-------%ld",[p retainCount]);
        [p release];
         NSLog(@"number3-------%ld",[p retainCount]);
      
        
    }
    return 0;
}


[解决办法]
release必须赋值nil,才能使引用计数为0

#import "Person.h"
int main(int argc, const char * argv[])
{
    @autoreleasepool
    {
        Person *p = [[Person alloc] init];
        NSLog(@"number1-------%ld", [p retainCount]);
        [p setAge:12];
        NSLog(@"number2-------%ld", [p retainCount]);
        [p release];
        p = nil;
        NSLog(@"number3-------%ld", [p retainCount]);
    }
    return 0;
}

热点排行