2016-09-06 11 views
-1

Я учу AFNetworking комплект. Я последовал за этим tutorial. Теперь я застрял в комментарии 2, см. Код ниже AFHTTPRequestOperation.Неизвестный приемник «AFHTTPRequestOperation»; Вы имели в виду «AFHTTPRequestSerializer»

Я импортировал AFNetworking используя cocoapods.

Вот мой код:

- (IBAction)jsonTapped:(id)sender{ 
    // comment 1 
    NSString *string = [NSString stringWithFormat:@"%@weather.php?format=json", BaseURLString]; 
    NSURL *url = [NSURL URLWithString:string]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

    // comment 2 
    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
    operation.responseSerializer = [AFJSONResponseSerializer serializer]; 

    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 

    // comment 3 
    self.weather = (NSDictionary *)responseObject; 
    self.title = @"JSON Retrieved"; 
    [self.tableView reloadData]; 

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

     // comment 4 
     UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error Retrieving Weather" 
                 message:[error localizedDescription] 
                 delegate:nil 
               cancelButtonTitle:@"Ok" 
               otherButtonTitles:nil]; 
     [alertView show]; 
    }]; 

    // comment 5 
    [operation start]; 
} 

Теперь получаю ошибку во время компиляции см снимок экрана:

enter image description here

+0

Проблема в том, что вы используете учебное пособие для AFNetworking 2.0 при импорте AFNetworking 3.0. Поскольку вы использовали CocoaPods, вы можете указать версию AFNetworking, чтобы она работала, иначе вот руководство по миграции: https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-3.0-Migration-Guide – Larme

+0

Larme прав, взгляните на аналогичную проблему на https://github.com/AFNetworking/AFNetworking/issues/3125, также вы должны импортировать, как #import iOSGeek

+0

попытался сменить на 2.0 did not work, я думаю, что AFHTTPRequestOperation не есть ли другая альтернатива для этой реализации? – user3281028

ответ

0

Вы можете использовать AFHTTPRequestOperationManager

- (void)apiRequestForPOSTWithServiceName:(NSString *)serviceName andParameters:(NSDictionary *)parameter withCompletion:(void(^)(id response, BOOL isSuccess))completion 
{ 
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
    NSString *url = [NSString stringWithFormat:@"%@%@", BASE_URL, serviceName]; 
    [manager POST:url parameters:parameter success:^(AFHTTPRequestOperation *operation, id responseObject) { 
     //NSLog(@"JSON: %@", responseObject); 

     completion(responseObject,YES); 

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
     NSLog(@"Error: %@", error); 

     completion(error,NO); 
    }]; 
} 

Счастливое кодирование ... !!

0

Пожалуйста, убедитесь, что вы включили AFNetworking в свой проект, прежде чем импортировать какой-либо из классов AFNetworking. Возможно, вы не импортировали комплект должным образом.

Не используйте UIAlertView, который устарел iOS 9 use UIAlertController см. Код ниже.

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Title" message:@"text mssg" preferredStyle:UIAlertControllerStyleAlert]; 

UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action){ 
    // Ok action code here 
}]; 
UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"Other" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action){ 
    // Other action code here 
}]; 

[alert addAction:okAction]; 
[alert addAction:otherAction]; 
[self presentViewController:alert animated:YES completion:nil]; 
+0

UIAlertView/UIAlertController здесь не имеет значения: вы не знаете, какая минимальная цель iOS для OP. Поэтому вы должны придерживаться только первого абзаца своего ответа. –

+0

@ Cœur, не думайте, что это неуместно после того, как все это было исправление, если оп нашел свои ады в первом параграфе, все идет хорошо. – vaibhav