2010-08-26 34 views
1

您能否为我写一个符合此定义的块:(BOOL(^)(id))block接受对象并返回布尔值的Objective-C块

我得到的最接近的是:

typedef BOOL (^birds)(MyObject*); 
birds c = ^(MyObject* p){ return (BOOL)[p.something boolValue]; }; 

但似乎通过这c在谁愿意(BOOL(^)(id))block一个消息是没有去。

回答

1

如果预计需要BOOL (^block)(id)区块,则需要通过此区块而不是BOOL (^block)(MyObject *)

那么试试这个:

typedef BOOL (^birds)(id); 
birds c = ^(id pp) { MyObject *p = (MyObject *) pp; return [p.something boolValue]; }; 
+0

您可以编辑分号添加到该行的结束?它绊倒了我,所以它可能会绊倒别人。 – 2010-11-05 05:57:07

+0

为什么不使用typedef BOOL(^ birds)(* MyObject); ? – sleepwalkerfx 2013-02-13 06:29:32