0

我的 iPhone 应用程序中有以下代码,它返回模型类型

size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *modelType = malloc(size);
sysctlbyname("hw.machine", modelType, &size, NULL, 0);
NSString *deviceModel = [NSString stringWithCString:modelType encoding:NSUTF8StringEncoding];
free(modelType);

但在某些用户的设备上,我得到了零。返回 nil 的设备具有定位服务。

1) 什么可能导致 nil 被退回?

2) 越狱设备是否返回 nil?

3) 有没有更好的方法来检查 iDevices 上的模型类型?

4

1 回答 1

2

试试这个:

#import <sys/utsname.h>

- (NSString *)machine {
    struct utsname si;
    uname(&si);

    NSString *res = [NSString stringWithCString:si.machine encoding:NSUTF8StringEncoding];

    return res;
}

我实际上将其添加为UIDevice.

这给出了各种“iPhone4,1”、“iPad2,4”类型值。

于 2013-03-09T22:57:01.347 回答