【问题标题】:AFNetworking build error: "Declaration of anonymous class must be a definition"AFNetworking 构建错误:“匿名类的声明必须是定义”
【发布时间】:2012-01-17 12:19:29
【问题描述】:

我开始使用 AFNetworking 来替换已失效的 ASIHTTPRequest。人们似乎喜欢这个新的“AFNetworking”,但它并没有构建在我的项目中,我不知道为什么。我在文件AFHTTPClient.m 中的HTTPRequestOperationWithRequest:success:failure 中的Class class = NSClassFromString(className); 开始出现构建错误。

错误是“匿名类的声明必须是一个定义”,我已经问过谷歌但没有得到任何东西。帮忙?

上下文:

- (AFHTTPRequestOperation *)HTTPRequestOperationWithRequest:(NSURLRequest *)urlRequest 
                                                    success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
                                                    failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
    AFHTTPRequestOperation *operation = nil;
    NSString *className = nil;
    NSEnumerator *enumerator = [self.registeredHTTPOperationClassNames reverseObjectEnumerator];
    while (!operation && (className = [enumerator nextObject])) {
        Class class = NSClassFromString(className);
        if (class && [class canProcessRequest:urlRequest]) {
            operation = [[(AFHTTPRequestOperation *)[class alloc] initWithRequest:urlRequest] autorelease];
        }
    }

编辑:按以下答案解决。补丁文件here

编辑 2:这些更改已被纳入最新的 AFNetworking,因此任何人在未来发现此内容:只需下载新版本即可。还有,未来怎么样?你好未来。

【问题讨论】:

    标签: afnetworking


    【解决方案1】:

    我能够通过将变量“class”重命名为其他名称来绕过编译器错误。不幸的是,我无法弄清楚为什么会出现问题。这是一条线索:当我将 AFNetworking 添加到一个具有未知编译器标志的大型现有项目时,它发生在我身上。当我将 AFNetworking 添加到一个新项目时,我根本没有遇到问题。

    【讨论】:

    • 我把“class”改成“classVC”,解决了我的问题,谢谢
    猜你喜欢
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多