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;
}
提前致谢!
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];
虽然使用其他两种方法中的任何一种都不会对你造成伤害.
| 归档时间: | 
 | 
| 查看次数: | 8030 次 | 
| 最近记录: |