假设我们要存储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环境中使用块作为成员变量。