2013-07-30 3 views
0

Я аутентифицируюсь с помощью Facebook в своем приложении iOS и использую следующий метод для захвата фида. Когда я проверяю, если это действительно объект JSON, он возвращает истину, но если я пытаюсь разобрать его, он дает мне ошибку:NSJsonSerialzation не анализирует результаты Facebook - Ошибка какао 3840

Mistake: The operation couldn’t be completed. (Cocoa error 3840.) 

Что можно сделать по этому поводу? Вот что приходит с сервера, отлично действует JSON - http://pastebin.com/ZwTnvi5g (получил его NSLog результат).

Как исправить это, так что nsjsonserialization правильно его анализирует?

- (void) refreshButtonPressed 
{ 
    FBRequest *request = [[FBRequest alloc] initWithSession:FBSession.activeSession graphPath:@"me/feed"]; 
    [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 

     NSError *mistake; 

     BOOL can = [NSJSONSerialization isValidJSONObject:result]; 

     NSLog(@"%d", can); 


     NSDictionary *first = [NSJSONSerialization JSONObjectWithData:result options:NSJSONReadingAllowFragments error:&mistake]; 

     if (mistake) { 
      NSLog(@"Mistake: %@", [mistake localizedDescription]); 
     } 
    }]; 
} 
+1

Покажите нам некоторые фактические JSON, а не, как вы выразились, 'NSLog()' массивного словаря. – CodaFi

+0

@CodaFi - это NSLog id, полученный этим обработчиком завершения, и который не может преобразовать. Я не знаю, как получить что-то лучше этого. – Dvole

+0

@CodaFi это печатает текст, который я предоставил на pastebin, вот и все, я ничего не вырезал или ничего не добавил – Dvole

ответ

1

В действительности документация для чтения могла бы помочь здесь.

@param result   The result of the request. This is a translation of 
         JSON data to `NSDictionary` and `NSArray` objects. This 
         is nil if there was an error. 

Он сам разбирает все, мне даже не нужно это делать. Таким образом, он возвращает действительный NSDictionary или NSArray.

Смежные вопросы