Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.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
如何从iOS SDK获取特定的iPhone信息_Ios_Iphone_Objective C - Fatal编程技术网

如何从iOS SDK获取特定的iPhone信息

如何从iOS SDK获取特定的iPhone信息,ios,iphone,objective-c,Ios,Iphone,Objective C,我试图在代码中从iOS设备(例如,“苹果iPhone 3G 16GB”、“苹果iPhone 5S 64GB”)获取特定的手机信息,而不提示用户。到目前为止,我知道你可以使用 [[UIDevice currentDevice] name] 看看是iPhone、iPad还是iPodtouch。但是,有没有一种方法可以直接通过iOS SDK获得更具体的信息,而不必使用UIDeviceHardware()之类的东西?我一直在寻找以前的答案,似乎不可能,但我只是想在这里确认我的发现。谢谢 这是两个独立的

我试图在代码中从iOS设备(例如,“苹果iPhone 3G 16GB”、“苹果iPhone 5S 64GB”)获取特定的手机信息,而不提示用户。到目前为止,我知道你可以使用

[[UIDevice currentDevice] name]

看看是iPhone、iPad还是iPodtouch。但是,有没有一种方法可以直接通过iOS SDK获得更具体的信息,而不必使用UIDeviceHardware()之类的东西?我一直在寻找以前的答案,似乎不可能,但我只是想在这里确认我的发现。谢谢

这是两个独立的信息

[[UIDevice currentDevice] name] // e.g. Raymonds iPhone
您需要的是以下内容:

[[UIDevice currentDevice] model] // e.g. iPhone, iPod touch, iPad, iOS Simulator
// or [[UIDevice currentDevice] localizedModel], e.g. Le iPod (j/k)
对于设备容量,可能有更好的示例,但这会返回系统报告的空间:

- (NSString*)deviceCapacity
{
    NSDictionary *attributesDict = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSTemporaryDirectory() error:NULL];
    NSNumber *totalSize = [attributesDict objectForKey:NSFileSystemSize];

    return [NSString stringWithFormat:@"%3.2f GB",[totalSize floatValue] /(1000*1000*1000)];
}
请注意,上面的示例可能会为16GB设备返回“14.37 GB”(其中14.37是iOS报告的数量,可能是安装iOS后的空间。因此,您可以将其视为用户分区,不包括根分区

因此,要将所有这些放在一起,请使用以下内容:

[NSString stringWithFormat:@"%@ %@", [[UIDevice currentDevice] model], [self deviceCapacity]];

该链接的代码有什么问题?它使用公共API,看起来应该可以工作。没有什么特别的,但我只是想知道是否有一种方法可以在没有外部代码的情况下完成(但似乎答案是否定的)因为如果我不依赖其他人的代码直接执行此操作,我会觉得安全一点。:DWell,那里没有太多代码,
sysctlbyname
确实是关键。这将查找有关设备的各种信息。