iphone sdk nsstring как объект - получить текст - PullRequest
0 голосов
/ 09 августа 2010

У меня проблема со строкой, которая возвращается из веб-службы. Я устанавливаю строку в заголовочном файле, просто с помощью

NSString *serviceUserID;
@property (nonatomic, retain) NSString *serviceUserID;

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

serviceUserID = @"4fffrdscfbg-44-06dfgf-dfgdfg-32eer456134";

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

NSLog(@"result = %@", result);
serviceUserID = result;

Приведенный выше код выведет строку serviceUserID в окно журнала, но когда я пытаюсь сделать то же самое вне этой функции, происходит сбой без сообщений об ошибках. Я понятия не имею, что случилось. Я пытался установить строку с initWithFormat и все виды, но ничего не работает !! Мне просто нужно установить переменную serviceUserID, чтобы я мог использовать ее в других функциях ... есть ли способ установить пропущенный текст ??

Спасибо за любую помощь.

1 Ответ

2 голосов
/ 09 августа 2010

Вам необходимо сохранить строковое значение, которое вы присваиваете своему iVar - в вашем примере вы, вероятно, назначаете автоматически выпущенную строку, которая становится недействительной вне текущей области видимости.Поскольку вы объявили свойство для него, правильный способ сделать это будет:

self.serviceUserID = result;

Причина, по которой работает serviceUserID = @"4fffrdscfbg-44-06dfgf-dfgdfg-32eer456134";, заключается в том, что вы присваиваете строковый литерал здесь - он создается во время компиляции ине выпускается вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...