0

我是 Reactive Cocoa 的新手,我想知道是否有人可以帮助我解决这个问题:

这是给我带来麻烦的代码片段:

[[[self getFormItemAttachmentHeaders:listName
                      topListItemID:form.topListItemID
                              form:form
 ] map:^id(NSMutableArray* value) {
    NSArray* attachmentHeaders = [value copy];
    return attachmentHeaders;
    }
  ] subscribeNext:^(NSArray* attachmentHeaders) {
    return [self uploadFormItemAttachments:pendingAttachments
                  attachmentHeaders:attachmentHeaders
                               form:form];
    }
 ];

这段代码是从一个 RACsignal 对象中调用的,其方法与定义如下:

  RACSignal* batchSignal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
    [pendingAttachments enumerateObjectsUsingBlock:^(SEFSManagedAttachment* pendingImage, NSUInteger idx, BOOL *stop) {

以下代码行:

return [self uploadFormItemAttachments:pendingAttachments
                      attachmentHeaders:attachmentHeaders
                                   form:form];

生成错误:

Incompatible block pointer types sending 'RACSignal *(^)(NSArray *__strong)' to parameter of type 'void (^)(__strong id)'
4

1 回答 1

0

错误的原因是因为 subscribeNext 块返回 void 并且通过放置返回将生成与块签名不兼容。

于 2016-11-12T01:39:44.743 回答