Если используемая вами строка C имеет кодировку UTF-8, используйте stringWithUTF8String:
.Если это простой ASCII, то используйте stringWithCString:encoding:
с кодировкой NSASCIIStringEncoding
.В противном случае он, вероятно, закодирован с использованием Latin-1, и в этом случае вы должны использовать stringWithCString:encoding:
с кодировкой NSISOLatin1StringEncoding
.
В этом случае sysctlbyname
почти наверняка вернет вам ASCIIстрока, поэтому вы должны сделать это:
NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];
Хотя использование любого из двух других методов не принесет вам вреда.