来自 Apple 的Blocks 编程主题:块和变量
Objective-C 对象
当一个块被复制时,它会创建对块内使用的对象变量的强引用。
如果对象没有从 NSObject 扩展怎么办?这有关系吗?
例如,给定一个属性
@property(nonatomic, copy) FooBlock fooBlock;
以下是
-(void)foo:(NSObject<Foo>*)foo
{
self.fooBlock = ^(){
[foo bar];
};
}
任何不同的
-(void)foo:(id<Foo>)foo
{
self.fooBlock = ^(){
[foo bar];
};
}