Управление памятью: строка NSStringWithCString: кодировка:

Предположим, я получаю строку C из некоторой функции:

char * mystring = SomeCFunction(...);

И я владею этой строкой (я отвечаю за ее освобождение, когда я закончу).

Если в Objective-C я создаюNSString * с помощью:

NSString * mynsstring = [NSString stringWithCString:mystring 
                                           encoding:NSUTF8StringEncoding];

Я все еще ответственен за освобождение оригинальной строки C?

Я предполагаю, что ответ - да, но я не могу найти окончательный ответ в документации - и функциональность противоположного метода (cStringUsingEncoding), хотя и чувственный, он заставляет меня задуматься, потому что он обрабатывает освобождение cString для вас.

Если ответ «да», я также несу ответственность за то, чтобы убедиться, что я не освобождаю строку c, прежде чем я закончу с использованиемNSString *, или функция копирует строку для меня? Я спрашиваю это, потому что документация дляstringWithCString говорит это:

Возвращает строку, содержащую байты в указанном массиве C, интерпретированные в соответствии с заданной кодировкой.

Что по-прежнему заставляет меня задуматься, скопировала ли она на самом деле байты или просто указывает на них внутренне (а я в основном просто выполняю приведение).

Ответы на вопрос(2)

Ваш ответ на вопрос