Ошибка сборки AFNetworking:«Объявление анонимного класса должно быть определением»
-
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 в новый проект, я вообще не столкнулся с проблемой.