将块存储为成员变量时,为什么块复制优于强引用?

时间:2015-03-12 20:48:24

标签: ios objective-c objective-c-blocks

假设我们要存储SomeBlock

typedef void(^SomeBlock)(void);

在SomeClass类型的对象的私有成员变量中,以便存储它并稍后运行它。我们可以这样做:

//SomeClass.m

@implementation SomeClass{
    SomeBlock _someBlock;
}
//some code
@end

或者我们可以这样做:

//SomeClass.m
@interface SomeClass()
@property (nonatomic, copy) SomeBlock someBlock;
@end

根据http://goshdarnblocksyntax.com/,后者更可取。为什么? 这两个例子都是有用的,但我想知道是否存在某些我不理解的内存含义。在非ARC环境中围绕它进行了一些讨论:Saving a block in instance variable,但我有兴趣在ARC环境中使用块作为成员变量。

0 个答案:

没有答案