乐趣区

关于ios:iOS笔记-9Weak与unsafeunretain

iOS 笔记系列目录

  • weak 润饰的指针变量,在指向的内存地址销毁后,会在 Runtime 的机制下,主动置为 nil。
  • _Unsafe_Unretain 不会置为 nil,容易呈现悬垂指针,产生解体。然而_Unsafe_Unretain 比__weak 效率高。

@interface MyClass()

//@property (nonatomic, strong) NSMutableArray *array;
//@property (nonatomic, weak) NSMutableArray *array;
@property (nonatomic, unsafe_unretained) NSMutableArray *array;

@end

@implementation MyClass

- (void)test {self.array = @[@"1",@"2"].mutableCopy;
    void (^block)(void) = ^ {
        // 应用 unsafe_unretained 上面这行会产生解体,self.array 成了僵尸对象
        NSLog(@"%@",self.array);    
    };
    block();
    NSLog(@"---");
}
退出移动版