1

基本上,我正在尝试为作为块的属性创建绑定。它在MonoTouch 文档中显示了如何执行此操作,但不适用于此特定情况。


这是我试图绑定的属性

    @property (copy) CouchDocumentPathMap documentPathMap;

CouchDocumentPathMap 是这样定义的

    typedef NSString* (^CouchDocumentPathMap)(NSString* documentID);

文档中,它显示了如何处理一个(^)(id obj, BOOL *stop)块,而不是一个(^Something)(id someParam)块。

4

2 回答 2

2

由于获取“返回”块并不是真正有用,因此您可以像这样绑定此属性:

delegate string CouchDocumentPathMap (string documentID);

[...] 

[Export ("setDocumentPathMap:")]
void SetDocumentPathMap (CouchDocumentPathMap handler);
于 2012-05-19T01:26:01.873 回答
2

CouchDocumentPathMap和,用你的话来说,不是Something块签名的一部分。CouchDocumentPathMap是一个类型的名称,该类型由typedef. 如果您要编写类型本身,它将是:

NSString* (^)(NSString* documentID)

同样,可以在不使用 typedef 的情况下声明该属性:

@property (copy) NSString* (^documentPathMap)(NSString* documentID);

它就像你更熟悉的类型。

于 2012-05-19T15:54:14.717 回答