Должен ли я отправить сообщение о выпуске для объекта? - PullRequest
0 голосов
/ 08 ноября 2010

Если я конвертирую тип CF в тип Foundation, должен ли я отправить сообщение о выпуске в качестве типа Foundation?

NSString *name = (NSString*) rawName;
CFRelease(rawName);
//should I [name release]; ?

Ответы [ 2 ]

1 голос
/ 08 ноября 2010

В этой ситуации * name и * rawName указывают на один и тот же объект. CFRelease () 'rawName вызовет EXC_BAD_ACCESS, когда вы попытаетесь использовать имя.

1 голос
/ 08 ноября 2010

Нет, не отправляйте другие сообщения о выпуске. Это разные ссылки на один и тот же объект.

Обычно, смешивая методы Core Foundation и Cocoa, вы сохраняете объект в том виде, в котором он находится (так что если вы работаете в Cocoa, сохраняйте его как NSString) и просто приводите его, когда вам нужно использовать методы другого фреймворка (такие как передача строки в метод Core Foundation, просто приведите ее к CFString, а не храните несколько ссылок).

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