Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone stringWithCString已弃用。。。那么,我如何使用sysctlbyname返回的char*?_Iphone_Ios_Sdk_Nsstring - Fatal编程技术网

Iphone stringWithCString已弃用。。。那么,我如何使用sysctlbyname返回的char*?

Iphone stringWithCString已弃用。。。那么,我如何使用sysctlbyname返回的char*?,iphone,ios,sdk,nsstring,Iphone,Ios,Sdk,Nsstring,我知道在SQLite中更改stringWithCString时如何处理此问题。。。您只需stringWithUTF8String。当一个字符由sysctlbyname返回时,它是否与char*相同?(见下面的代码) 提前谢谢 如果您使用的C字符串是UTF-8编码的,则使用stringWithUTF8String:。如果是纯ASCII,则使用stringWithCString:encoding:编码为NSASCIIStringEncoding。否则,它可能使用拉丁语-1编码,在这种情况下,您应该使

我知道在SQLite中更改
stringWithCString
时如何处理此问题。。。您只需
stringWithUTF8String
。当一个字符由
sysctlbyname
返回时,它是否与
char*
相同?(见下面的代码)


提前谢谢

如果您使用的C字符串是UTF-8编码的,则使用
stringWithUTF8String:
。如果是纯ASCII,则使用
stringWithCString:encoding:
编码为
NSASCIIStringEncoding
。否则,它可能使用拉丁语-1编码,在这种情况下,您应该使用
stringWithCString:encoding:
编码为
NSISOLatin1StringEncoding

在这种情况下,
sysctlbyname
几乎肯定会返回一个ASCII字符串,因此您应该执行以下操作:

NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];

尽管使用其他两种方法中的任何一种都不会对您造成伤害。

您只需指定字符串编码,在sysctlbyname的情况下为ASCII:

NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];

stringWithCString:已被弃用,取而代之的是stringWithCString:编码:。您可以使用[NSString defaultCStringEncoding]来准确地再现stringWithCString的行为:但是您最好指定NSASCIIStringEncoding或NSUTF8StringEncoding。sysctlbyname返回的编码似乎是隐式的,因此7位ASCII是安全的,这两种编码都适用

如果您在

errorString = [NSString stringWithCString:iax_errstr];
试试这个

errorString = [NSString stringWithCString:iax_errstr encoding:NSASCIIStringEncoding]

是,stringWithUTF8String返回字符串。
errorString = [NSString stringWithCString:iax_errstr encoding:NSASCIIStringEncoding]