Jan*_*ann 11 iphone sdk nsstring ios
我知道如何stringWithCString在SQLite中更改时处理这个问题...而你只是stringWithUTF8String改为.这是用同样的char *,当它被退回sysctlbyname?(见下面的代码)
- (NSString *) platform{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine];
free(machine);
return platform;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
Ada*_*eld 20
如果您使用的C字符串是UTF-8编码的,那么请使用stringWithUTF8String:.如果它是纯ASCII,那么使用stringWithCString:encoding:编码NSASCIIStringEncoding.否则,它可能使用Latin-1编码,在这种情况下,您应该使用stringWithCString:encoding:编码NSISOLatin1StringEncoding.
在这种情况下,sysctlbyname几乎可以肯定会给你一个ASCII字符串,所以你应该这样做:
NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)
虽然使用其他两种方法中的任何一种都不会对你造成伤害.
| 归档时间: |
|
| 查看次数: |
8030 次 |
| 最近记录: |