2010-10-23 2 views
0

В настоящее время я пытаюсь написать iPhone-компаньон на веб-сайт, который я разрабатываю. Я пытаюсь получить данные JSON с моего сайта, сделав контроллер делегатом NSURLConnection. Вот проблема, хотя, у меня есть объект NSMutableData имени responseData инициализируется следующим образом:Объект NSMutableData не распознает селектор?

responseData = [NSMutableData dataWithLength:0]; 

И я хочу добавить данные, как это происходит:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    [responseData appendData:data]; 
} 

Однако, это вызывает мое приложение к сбою и говорит в консоли:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[__NSCFArray appendData:]: unrecognized selector sent to instance 
0x6d0a640' 

Я довольно уверен, что appendData следует признать, так что я в недоумении относительно того, что проблема здесь ...

ответ

6

Вы должны сохранить объект:

responseData = [NSMutableData dataWithLength:0]; 

[responseData retain]; 

Но это не обычный способ сделать это. Просто используйте Alloc/INIT:

responseData = [[NSMutableData alloc] init]; 

Но не забудьте выпустить в dealloc:

[responseData release]; 
+0

Первый работал для меня, как я застрял с той же проблемой. Как ни странно, я уже делал второй, но по какой-то причине он не работал на меня. Было бы очень полезно узнать, почему он не работает для меня. Более странно, второй работает в другой части моего кода. Не могли бы вы рассказать об этой ситуации? –

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