Неизвестное имя типа AFJSONRequestOperation

В настоящее время я просматриваю это руководство. Я установил AFNetworking, но когда я вставляю этот код, я получаю ошибки в строках 7 и 8, говорящие Unknown type name AFJSONRequestOperation и No 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.

Есть идеи по исправлению?

ИЗМЕНИТЬ:

Все .h файлы исходной загрузки AFNetworking были импортированы через 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_ */

person Sebastian    schedule 22.01.2014    source источник
comment
Вы пропустили #import...   -  person trojanfoe    schedule 22.01.2014
comment
Все эти файлы импортируются: github.com/AFNetworking/AFNetworking/tree/master/AFNetworking Как я уже сказал, чего-то не хватает   -  person Sebastian    schedule 22.01.2014
comment
Все они? Звучит немного чересчур.   -  person trojanfoe    schedule 22.01.2014
comment
Взгляните на мою правку   -  person Sebastian    schedule 22.01.2014
comment
Я не заметил AFJSONRequestOperation.h.   -  person trojanfoe    schedule 22.01.2014
comment
Нет, его нет в списке, на который я дал ссылку, хотя похоже, что он должен быть...   -  person Sebastian    schedule 22.01.2014


Ответы (3)


Какую версию AFNetworking вы используете? Похоже, вы используете версию 2.x, а AFJSONRequestOperation из версии 1.x.

См. также здесь: https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-2.0-Migration-Guide

person koen    schedule 22.01.2014

Слишком поздно для ОП, я думаю, но у меня была эта проблема, потому что в исходной папке было две копии AFNetworking. Один в моей CocoaPods установке и один из более ранних, которые не были удалены.

Я обнаружил это, выполнив поиск «AFNetworking» в выводе команды компиляции сообщения об ошибке, которое показало мне копию AFNetworking, которую я не ожидал.

Сброс копии без pod все исправил.

person Warren Burton    schedule 08.04.2015

добавить структуру System.Configuration. Затем добавьте #import в pch. Возможно, проблема возникает из-за структуры конфигурации.

person Aybek Can Kaya    schedule 02.07.2014