,我无法理解这样的代码示例:Objective-C的块如需要我是新来的Objective-C,我是继苹果公司的“编程与Objective_C”解释
void (^(^complexBlock)(void (^)(void)))(void) =^(void (^aBlock)(void)) {
//some code
return ^{
//some code
};
};
我期待这种模式:
ReturnType ^(blockVariableIdentifier)(ParameterType1, ParameterType2, ...) = ^{
//some code
};
- 是如何
blockVariableIdentifier
repleaced与(^complexBlock)(void (^)(void))
? - 是不是应该有
void
作为回报,那么我们有没有return { ... }
?
我觉得这段代码很混乱,你能解释一下吗?
代码source。
更新:
鉴于这种类型定义:
typedef void (^XYZSimpleBlock)(void);
我可以简化complexBlock
的声明:
void (^(^complexBlock)(XYZSimpleBlock))(void);
,但我还是不明白这是如何相当于
XYZSimpleBlock (^betterBlock)(XYZSimpleBlock);
这很混乱,你不明白什么?或者,也许这很容易,你能写下你的想法/理解/不明白的东西吗?通过这种方式,我们可以简单地纠正你错误的地方,而不是失望,因为看起来你没有付出太多努力:P –
增加了更多细节。 –
@AmrLotfy我更新了我的答案''typedef' of'XYZSimpleBlock'和一些返回类型的解释 – Azat