Ответ mipadi является лучшим, если вы просто хотите, чтобы char*
содержал содержимое строки, однако NSString предоставляет методы для получения данных в буфер, который вы выделили сами. Например, вы можете скопировать символы в массив unichar
, используя getCharacters:range:
следующим образом:
NSUInteger length = [str length];
unichar buffer[length];
[str getCharacters:buffer range:NSMakeRange(0, length)];
for (NSUInteger i = 0; i < length; i++)
{
doSomethingWithThis(buffer[i]);
}
Если вам нужно использовать char
, то вы можете использовать более сложные getBytes:maxLength:usedLength:encoding:options:range:remainingRange:
, как это (показано в Восточно-польская рождественская елка запись):
NSUInteger length = [str length];
NSUInteger bufferSize = 500;
char buffer[bufferSize] = {0};
[str getBytes:buffer
maxLength:(bufferSize - 1)
usedLength:NULL
encoding:NSUTF8StringEncoding
options:0
range:NSMakeRange(0, length)
remainingRange:NULL];