13-内存管理、野指针与空指针、@class与#import、循

2016-04-12  本文已影响86人  Giurlo

ARC与MRC


@autoreleasepool { // 创建一个自动释放池
    Person *p = [[Person alloc] init]; // 1
    // 不用关心对象什么时候释放, 只要能够访问p的地方都可以使用p
    p = [p autorelease]; 
    // 只要调用了autorelease, 那么就不用调用release了
    [p retain]; // 2
    [p run];
} // 自动释放池销毁了, 给自动释放池中所有的对象发送一条release消息

野指针与空指针


@class与#import


循环retain


如果A对象要拥有B对象, 而B对象又要拥有A对象, 此时会形成循环retain, 如何解决这个问题: 不要让A retain B, B retain A, 让其中一方不要做retain操作即可,使用assign

上一篇 下一篇

猜你喜欢

热点阅读