是否可以在Obj-c中使用嵌套方法。我想要做的是在初始化NSArray
:
NSArray array = @[
^{ NSViewController someObject = ...
someObject.someObjectProperty = @"Bla";
return someObject},
^{ NSViewController someOtherObject = ...
someOtherObject.someOtherObjectProperty = @"Bla Bla";
return someObject},
];
数组包含__NSGlobalBlock__
,我试图获取[someObject, someOtherObject]
数组返回一堆ViewControllers,我需要在每个上设置不同的属性。
由于
答案 0 :(得分:2)
代码块不仅仅是“将来某个时候执行”。他们可以以这种方式使用,但它们当然可以按照你建议的方式使用;他们是一个lambda。当然,你的语法都错了,因为你描述块,而不是调用它。 (虽然包含块的数组也非常合理。)
答案 1 :(得分:1)
如果我理解正确,您需要创建一个本地块并将其返回值直接添加到数组中。虽然它不是主流方法,但它有可能:
NSArray *array = @[
(id)^{
id someObject = ...
someObject.aProp = @"Bla";
return someObject;
}(), // here you immediately execute the local block
(id)^{
id someObject = ...
someObject.aProp = @"Bla";
return someObject;
}()
];