我开始在 Objective-C 中使用块,并且还没有真正找到一个很好的解释来解释为什么一个块,如果你要将它分配给一个实例变量,必须分配copy
而不是assign
?
例如:
typedef void (^MyBlock)();
@interface SomeClass : NSObject
{
MyBlock myblock;
// Other ivars
}
@property (nonatomic, copy) MyBlock myblock; // Why must this be 'copy'???
// other declarations
@end