Если вам нужно сохранить ссылку на объект после возврата метода, вам нужно стать владельцем объекта.Итак, если ваша переменная GUID
является переменной экземпляра или какой-то глобальной, вам нужно будет взять на себя ответственность за объект.Если вы используете метод alloc / init, у вас есть право собственности на возвращенный объект, так как вы использовали alloc
.Вы также можете с легкостью использовать метод stringWithUTF8String:
, но вам нужно будет явно вступить во владение, отправив сообщение retain
.Итак, предположим, что GUID
является некоторой переменной, не относящейся к области метода:
GUID = [[NSString stringWithUTF8String:"Some UTF-8 string"] copy];
(здесь можно использовать copy
или retain
, но copy
встречается чащепри работе со строками).
Кроме того, ваш код может быть немного легче для чтения, если вы сделали что-то вроде:
GUID = p ? [[NSString stringWithUTF8String:p] copy] : @"";