Ios 如何解决目标C中成功回调的预期“')”错误

Ios 如何解决目标C中成功回调的预期“')”错误,ios,objective-c,xcode,quickblox,xcode10,Ios,Objective C,Xcode,Quickblox,Xcode10,我正在尝试将Quickblox聊天集成到现有的Objective C Xcode应用程序中。下面的方法在另一个应用程序中起作用,用于向聊天对话框发送附件 dispatch_async(dispatch_get_main_queue(), ^{ [QBRequest TUploadFile:imageData fileName:@"test.png" contentType:

我正在尝试将Quickblox聊天集成到现有的Objective C Xcode应用程序中。下面的方法在另一个应用程序中起作用,用于向聊天对话框发送附件

dispatch_async(dispatch_get_main_queue(), ^{

            [QBRequest TUploadFile:imageData
                          fileName:@"test.png"
                       contentType:@"image/png"
                          isPublic:NO
                      successBlock:^( QBResponse * _Nonnull response, QBCBlob * _Nonnull uploadedBlob )
                        {

                          QBChatAttachment *attachment = [[QBChatAttachment alloc] init];

                          attachment.url = uploadedBlob.privateUrl ? uploadedBlob.privateUrl : uploadedBlob.publicUrl;

                          attachment.ID = uploadedBlob.UID;
                          attachment.name = uploadedBlob.name;
                          attachment.type = @"image";

                          if ([strongSelf.delegate respondsToSelector:@selector(attachmentBar:didUpLoadAttachment:)]) {
                              [strongSelf.delegate attachmentBar:strongSelf didUpLoadAttachment:attachment];
                          }

                      } statusBlock:^(QBRequest * _Nonnull request, QBRequestStatus * _Nonnull status) {

                          CGFloat progress = status.percentOfCompletion;
                          [strongSelf updateLoadingProgress:progress];

                      } errorBlock:^(QBResponse * _Nonnull response) {
                          if ([strongSelf.delegate respondsToSelector:@selector(attachmentBarFailedUpLoadImage:)]) {
                              [strongSelf.delegate attachmentBarFailedUpLoadImage:strongSelf];
                          }

                      }];
        });
但是succesBlock回调不断抛出预期错误

successBlock:^( QBResponse * _Nonnull response, QBCBlob * _Nonnull uploadedBlob )
完整错误如下面的屏幕截图所示


我做错了什么。

预期的错误实际上是由@DonMag和@Pankaj Gaikar怀疑的另一个错误引起的

错误是

"use of undeclared identifier QBRequest"
即使在所说的QBRequest上单击一个命令会获得指向Quickblox.h引用的链接,我还是意识到ChatAttachment类实际上并不是Quickblox.h

因此,解决方案是在prefix.pch文件中导入Quickblox.h

如果您的应用程序尚未创建prefix.pch文件,请执行以下步骤

从Xcode菜单中,选择文件>新建>文件

从iOS模板选项中,选择其他>PCH文件

将文件命名为-Prefix.pch,然后选择“创建”

从目标的生成设置中,选择“全部”,然后将以下内容添加到前缀标题字段

$SRCROOT/-Prefix.pch


我希望这对某些人有所帮助。

只是猜测,但可能是您错过了导入某些内容,因此编译器无法识别QBResponse。@Pankaj QBResponse在QuickBlox framework的标题中引用。一个命令click链接到引用,我说bcz已经出现了一个错误,建议转发类对象,这清楚地表明您仍然必须导入某些内容。@kplus-如果删除_Nonnull关键字会发生什么?@kplus-您发布的图像似乎表明该successBlock有3个问题:行。。。可能预期的错误是由另一个错误引起的?