未知类型名称 AFJSONRequestOperation

Posted

技术标签:

【中文标题】未知类型名称 AFJSONRequestOperation【英文标题】:Unknown type name AFJSONRequestOperation 【发布时间】:2014-01-22 14:26:55 【问题描述】:

我目前正在处理this tutorial。我已经安装了 AFNetworking,但是当我输入这段代码时,我在第 7 行和第 8 行出现错误,上面写着 Unknown type name AFJSONRequestOperationNo known class method for selector JSONRequestOperationWithRequest:request

-(void)makeRestuarantRequests

    NSURL *url = [NSURL URLWithString:@"A URL which returns JSON"];

NSURLRequest *request = [NSURLRequest requestWithURL:url];
//AFNetworking asynchronous url request
AFJSONRequestOperation *operation = [AFJSONRequestOperation
                            JSONRequestOperationWithRequest:request
                            success:^(NSURLRequest *request, NSHTTPURLResponse *response, id responseObject)
                                     
                                         NSLog(@"JSON RESULT %@", responseObject);

                                     
                            failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id responseObject)
                                     
                                            NSLog(@"Request Failed: %@, %@", error, error.userInfo);
                                     ];

[operation start];


似乎我缺少一个包含我需要的类的文件,可能是AFJSONRequestOperation.m.h

有什么解决办法吗?

编辑:

原AFNetworking download中的所有.h文件都是通过AFNetworking.h导入的:

#import <Foundation/Foundation.h>
#import <Availability.h>

#ifndef _AFNETWORKING_
    #define _AFNETWORKING_

    #import "AFURLRequestSerialization.h"
    #import "AFURLResponseSerialization.h"
    #import "AFSecurityPolicy.h"
    #import "AFNetworkReachabilityManager.h"

    #import "AFURLConnectionOperation.h"
    #import "AFHTTPRequestOperation.h"
    #import "AFHTTPRequestOperationManager.h"


#if ( ( defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090) || \
      ( defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 ) )
    #import "AFURLSessionManager.h"
    #import "AFHTTPSessionManager.h"
#endif

#endif /* _AFNETWORKING_ */

【问题讨论】:

你错过了#import... 所有这些文件都导入了:github.com/AFNetworking/AFNetworking/tree/master/AFNetworking 就像我说的,一定是缺少了什么 全部?听起来有点矫枉过正。 看看我的编辑 我没注意到AFJSONRequestOperation.h 【参考方案1】:

您使用的是哪个版本的AFNetworking?好像您使用的是 2.x 版,而 AFJSONRequestOperation 来自 1.x 版。

参见此处:https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-2.0-Migration-Guide

【讨论】:

【参考方案2】:

我猜对 OP 来说太晚了,但我遇到了这个问题,因为在源文件夹周围有两个 AFNetworking 副本。我的CocoaPods 安装中的一个和之前的一个尚未删除。

我通过在错误消息的编译命令输出中搜索“AFNetworking”发现了这一点,该错误消息向我显示了我没想到的 AFNetworking 副本。

转储非 pod 副本将其全部修复。

【讨论】:

【参考方案3】:

添加 System.Configuration 框架。然后加 #在 pch 中导入。也许问题来自配置框架。

【讨论】:

以上是关于未知类型名称 AFJSONRequestOperation的主要内容,如果未能解决你的问题,请参考以下文章

UIViewController 类的未知类型名称

未知类型名称'CGVector';您指的是 'CIVector' 吗?

swift 属性的未知类型名称

错误:未知类型名称“mxArray”

C++ 中的 OpenCV:“未知类型名称”

类型“未知”.ts(2339) 上不存在属性“名称”