Jar*_*edH 5 syntax objective-c objective-c-blocks
Obj-C块是我刚刚第一次使用的东西.我试图理解以下块语法:
在头文件中:
@property (nonatomic, copy) void (^completionBlock)(id obj, NSError *err);
Run Code Online (Sandbox Code Playgroud)
在主文件中:
-(void)something{
id rootObject = nil;
// do something so rootObject is hopefully not nil
if([self completionBlock])
[self completionBlock](rootObject, nil); // What is this syntax referred to as?
}
Run Code Online (Sandbox Code Playgroud)
我很感激你的帮助!
块是对象.
在你的情况下你在方法中检查块是不是nil然后你正在调用它传递两个必需的参数...
请记住,以与ac功能相同的方式调用块...
下面我将声明分成两部分让你更好地理解:
[self completionBlock] //The property getter is called to retrieve the block object
(rootObject, nil); //The two required arguments are passed to the block object calling it
Run Code Online (Sandbox Code Playgroud)
小智 2
它是一个块属性,您可以在运行时设置一个块。
这是设置的语法
由于它是void类型,所以在类中你可以通过以下代码设置一个方法
self.completionBlock = ^(id aID, NSError *err){
//do something here using id aID and NSError err
};
Run Code Online (Sandbox Code Playgroud)
通过以下代码,您可以调用之前设置的方法/块。
if([self completionBlock])//only a check to see if you have set it or not
{
[self completionBlock](aID, nil);//calling
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
629 次 |
| 最近记录: |