是否可以使用标准属性语法将块作为属性?
ARC有什么变化吗?
这是此queston的扩展: 是否可以在Objective-C中创建"块"对象的类别.
基本上虽然似乎可以通过NSObject或NSBlock在块上创建类别,但我无法理解块如何能够自我评估.在上一个问题的答案中给出的例子:
- (void) doFoo {
//do something awesome with self, a block
//however, you can't do "self()".
//You'll have to cast it to a block-type variable and use that
}
Run Code Online (Sandbox Code Playgroud)
意味着有可能以某种方式将self转换为块变量,但是如何执行块本身呢?例如,假设我在NSBlock上做了一个类别,并且在一个方法中做了:
NSBlock* selfAsBlock = (NSBlock*)self;
Run Code Online (Sandbox Code Playgroud)
是否有任何消息可以发送给selfAsBlock以对块进行评估?