相关疑难解决方法(0)

使用块时避免保留周期的正确方法是什么

在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)

更新属性定义的原始对象的正确方法是什么?

iphone block objective-c weak automatic-ref-counting

10
推荐指数
2
解决办法
3379
查看次数

可以__weak在块的中间自我转nil?

__weak self在我的块中使用在后台线程上运行的引用时,我是否只需要nil在开始时检查,或者__weak self在第一次nil测试通过后执行期间甚至可以变为nil ?我想从self块中访问一些ivars ,我需要在块执行时的最新值.

objective-c grand-central-dispatch ios objective-c-blocks

0
推荐指数
1
解决办法
976
查看次数