Objective-C Block接受一个对象并返回一个布尔值

时间:2010-08-26 08:47:28

标签: objective-c block objective-c-blocks

你能为我写一个符合这个定义的块:(BOOL(^)(id))block

我最接近的是:

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

但似乎将c传递给希望(BOOL(^)(id))block的消息中的{{1}}是不行的。

1 个答案:

答案 0 :(得分:1)

如果预期阻止BOOL (^block)(id),则需要传递此块而不是BOOL (^block)(MyObject *)

所以试试这个:

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