- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我知道在 SQLite 中更改 stringWithCString
时如何处理这个问题...您只需 stringWithUTF8String
即可。这与 sysctlbyname
返回的 char *
是否相同? (见下面的代码)
- (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;
}
提前致谢!
最佳答案
如果您使用的 C 字符串是 UTF-8 编码的,则使用 stringWithUTF8String:
。如果它是纯 ASCII,则使用 stringWithCString:encoding:
,编码为 NSASCIIStringEncoding
。否则,它可能使用 Latin-1 编码,在这种情况下,您应该使用 stringWithCString:encoding:
和 NSISOLatin1StringEncoding
编码。
在这种情况下,sysctlbyname
几乎肯定会返回一个 ASCII 字符串,因此您应该这样做:
NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];
尽管使用其他两种方法中的任何一种都不会对您造成伤害。
关于iphone - stringWithCString 已弃用...那么我如何使用 sysctlbyname 返回的 char*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6991455/
我正在使用 this Gist 中的代码确定我的应用正在运行的 iOS 设备(例如 iPhone5,1): - (NSString *)platform { size_t size;
我正在尝试使用 sysctlbyname() 在 iphone 中获取 TCP 开放端口列表。 sysctlbyname(const char *name, void *oldp, size_t *
我让这段代码在 swift 1.1 中运行不确定如何修复它 var deviceModelIdentifier: String { var size : UInt = 0 // Swift 1
我知道在 SQLite 中更改 stringWithCString 时如何处理这个问题...您只需 stringWithUTF8String 即可。这与 sysctlbyname 返回的 char *
在 WWDC 2015 session “703 隐私和您的应用”之后,使用 sysctl 进行了更改。现在我们将无法再调用 kern.proc、kern.procargs、kern.procargs
我导入: #import #import 当我在 dispatch_once 之外使用函数 sysctlbyname("hw.machine", NULL, &size, NULL, 0); 时,
我想在我的 iPhone 上获取 tcp 连接列表。我在 上得到了以下代码 How to get tcp/udp opening port list on iphone by objective-c?
我是一名优秀的程序员,十分优秀!