Ошибка сборки AFNetworking:«Объявление анонимного класса должно быть определением»

StackOverflow https://stackoverflow.com/questions/8894475

  •  29-10-2019
  •  | 
  •  

Вопрос

Я начинаю использовать AFNetworking, чтобы заменить печально несуществующий ASIHTTPRequest.Кажется, людям нравится эта новая «AFNetworking», но она не встроена в мой проект, и я не могу понять, почему.Я получаю ошибки сборки, начиная с Class class = NSClassFromString(className); в HTTPRequestOperationWithRequest:success:failure в файле AFHTTPClient.m.

Ошибка: «Объявление анонимного класса должно быть определением», и я спросил Google, но ничего не получил.Помощь?

Контекст:

- (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];
        }
    }

РЕДАКТИРОВАТЬ:Решено для каждого ответа ниже.Файл исправления здесь.

РЕДАКТИРОВАТЬ 2: Эти изменения были внесены в новейшую версию AFNetworking, так что любой, кто найдет это в будущем: Просто скачайте свежую версию и все готово. Кроме того, как будущее?Привет, будущее.

Это было полезно?

Решение

Мне удалось обойти ошибку компилятора, переименовав переменную «класс» во что-то другое.К сожалению, я не смог понять, почему у меня возникла проблема.Вот подсказка:это случилось со мной, когда я добавил AFNetworking в большой существующий проект с неизвестными флагами компилятора.Когда я добавил AFNetworking в новый проект, я вообще не столкнулся с проблемой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top