在NSMutableArray中添加对象的正确方法是什么,该对象由属性强烈定义.
[tapBlockView setTapBlock:^(UIImage* image) {
[self.myImageArray addObject:image]; // self retain cycle
}
Run Code Online (Sandbox Code Playgroud)
如果我将创建弱引用之类的东西
__weak NSMutableArray *array = self.myImageArray;
[tapBlockView setTapBlock:^(UIImage* image) {
[array addObject:image]; // If I will do this then how will I update original Array ?
}
Run Code Online (Sandbox Code Playgroud)
我也试过了
__weak id weakSelf = self;
[tapBlockView setTapBlock:^(UIImage* image) {
[weakSelf storeImageInaNewMethod:image]; // Calling SToreImageInaNewMethod
}
Run Code Online (Sandbox Code Playgroud)
和
-(void)storeImageInaNewMethod:(UIImage*)image {
[self.myImageArray addObject:image]; // This again retaining cycle
}
Run Code Online (Sandbox Code Playgroud)
更新属性定义的原始对象的正确方法是什么?
当__weak self在我的块中使用在后台线程上运行的引用时,我是否只需要nil在开始时检查,或者__weak self在第一次nil测试通过后执行期间甚至可以变为nil ?我想从self块中访问一些ivars ,我需要在块执行时的最新值.