2015-02-05 3 views
0

Я создаю приложение iOS, и я использую библиотеку AFNetworking для данных POST на сервере.конфликт в обратном типе функции + IOS

Я создал функцию для отправки данных и вызова этой функции в разных классах в моем приложении.

Я получаю ответ запроса в переменной, называемой «responseObject», и я хочу вернуть это в оператор return, я не могу идентифицировать возвращаемый тип responseObject и, следовательно, функции, я пытался использовать NSDictionary но получить следующее предупреждение:

Conflicting return type in implementation of 'postData:parameters:': 'void' vs 'NSDictionary *' 

вот мой код:

-(void)postData:(NSString*)postUrl parameters:(NSDictionary *)params{ 


    NSURL *baseURL = [NSURL URLWithString:@"http://xyz:2424/api/"]; 

    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL]; 
    manager.requestSerializer = [AFJSONRequestSerializer serializer]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
    [manager POST:postUrl parameters:params success:^(NSURLSessionDataTask *task, id responseObject) 

    { 

     NSLog(@"response %@",responseObject); 

    } 
       failure:^(NSURLSessionDataTask *task, NSError *error) { 
       NSLog(@"\n============== ERROR ====\n%@",error); 

       UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error adding book" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alertView show]; 


      }]; 

} 

ответ

0

Сначала вы можете увидеть тип класса в responseObject, набрав NSLog (@ "ClassType -% @", [responseObject класс]). Затем пользовательский делегат передает объект responseObject желаемый тип.

+0

я получив класс как __NSCFDictionary, но это то, что я не могу вернуть в возвращаемом типе функции. Не могли бы вы предложить что-то? – Neelanshu

+0

Пожалуйста, покажите свой метод, в котором вы хотите вернуть этот словарь. Потому что в коде u вы не показывали ничего работающего после nslog. – ashForIos

+0

Мне не нужен тип возврата void, я хочу, чтобы возвращаемый тип как responseObject.And responseObject имеет класс __NSCFDictionary – Neelanshu

0

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

-(NSDictionary*)postData:(NSString*)postUrl parameters:(NSDictionary *)params; 
Смежные вопросы