说我有这样的块:
Object someObject = nil;
block = ^(Object *obj){
if(obj == nil)
obj = [[Object alloc] init];
};
block(someObject); //someObject is still nil
block(someObject); //it will assign again, instead of not
NSLog(@"result: %@", someObject); //still nil
似乎您不能以这种方式将事物分配给块中的参数,有什么方法可以做到吗?此块作用于不同的对象,如果对象为nil,则需要对其进行赋值。在这种状态下,某些对象仅在范围内分配(因此obj
已分配,但未分配someObject
)。我试过使用__block
,但我不认为这就是它的用途。