相关疑难解决方法(0)

如何确定当前的iPhone /设备型号?

有没有办法在Swift中获取设备型号名称(iPhone 4S,iPhone 5,iPhone 5S等)?

我知道有一个名为的属性,UIDevice.currentDevice().model但它只返回设备类型(iPod touch,iPhone,iPad,iPhone模拟器等).

我也知道可以使用这种方法在Objective-C中轻松完成:

#import <sys/utsname.h>

struct utsname systemInfo;
uname(&systemInfo);

NSString* deviceModel = [NSString stringWithCString:systemInfo.machine
                          encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

但是我正在Swift中开发我的iPhone应用程序,所以有人可以用同样的方式帮助我在Swift中解决这个问题吗?

iphone device ios swift

358
推荐指数
16
解决办法
23万
查看次数

检测特定的iPhone/iPod touch型号

可能重复:
使用iPhone SDK确定设备(iPhone,iPod Touch)

我正在制作一款利用iPhone的对等蓝牙功能的游戏(可能还有iPod touch第二代).但是,要阻止用户尝试在iPod 1st和iPhone 2G上播放多人游戏,我需要检查特定的设备型号.

[[UIDevice currentDevice] model]只会告诉我该设备是"iPhone"还是"iPod touch".有没有办法检查特定的设备型号,如:"iPhone 3GS","iPod touch第一代"或类似的东西.

编辑:

UIDevice有一个类别(我认为它是由Erica Sadun创建的,我不赞成它),它使用以下代码来获取特定的设备模型.你可以在这里找到整个类别以及其他有用的东西:https://github.com/erica/uidevice-extension

#include <sys/types.h>
#include <sys/sysctl.h>

@implementation UIDevice (Hardware)

/*
 Platforms
 iPhone1,1 -> iPhone 1G
 iPhone1,2 -> iPhone 3G 
 iPod1,1   -> iPod touch 1G 
 iPod2,1   -> iPod touch 2G 
*/

- (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 encoding:NSUTF8StringEncoding];
  free(machine);
  return platform;
}
Run Code Online (Sandbox Code Playgroud)

这项工作和使用它的应用程序最近已在AppStore中批准.

iphone p2p objective-c device ios

106
推荐指数
3
解决办法
9万
查看次数

在xcode上识别新的iPhone型号(5,5c,5s)

我正在编写一个具有不同功能的应用程序,具体取决于iPhone的型号.有没有办法区分iPhone 5和5c 5s?我无法检查显示器,因为它是相同的.提前致谢.

iphone xcode objective-c ios

35
推荐指数
3
解决办法
3万
查看次数

了解iOS设备是否具有蜂窝数据功能

我在我的应用程序中切换了"仅在WiFi上下载".但是,这种切换对于iPod touch或WiFi-iPad来说毫无用处.

有没有办法知道设备是否具有代码中的蜂窝数据功能?将来会发挥作用的东西也会很棒(就像带有3G的iPod touch第五代产品一样).

iphone objective-c cellular-network uidevice ios

31
推荐指数
3
解决办法
1万
查看次数

如何检测用户是否具有标准或缩放模式的iPhone 6 Plus?

如何检测用户是否具有标准或缩放模式的iPhone 6 Plus?这可能吗?

在两种情况下,我都尝试过[UIScreen mainScreen].scale3.0.

iphone objective-c ios uiscreen iphone-6-plus

23
推荐指数
6
解决办法
1万
查看次数

什么是iPhone 5/5c/5s/iPod touch 5的设备代码(平台字符串)?

例如,iPhone 5的"iPhone5,1"或"iPhone5,2"是什么?有什么区别?

如果有人有iPhone 5,请运行以下代码并显示结果.谢谢.

相关链接:https://stackoverflow.com/a/3950748/482899

iphone ios iphone-5

22
推荐指数
3
解决办法
5万
查看次数

如何从模拟器(IOS)获取Iphone类型

有很多解决方案可以找出应用程序运行的设备.

iOS:如何确定Swift中当前的iPhone /设备型号?

但是在模拟器中运行,我们只能检测到它是模拟器,而不是什么类型的模拟器(iphone5,6,6s等)

我们如何根据模拟器的devicetype测试不同的逻辑?或者我如何检测代码中模拟的设备?

device ios ios-simulator swift

13
推荐指数
2
解决办法
3199
查看次数

iPhone - 如何检测iPhone版本?

如何检测用户是否在iPhone 4或3G/3GS上运行应用程序?

我需要检测硬件,而不是iOS版本.

谢谢你的帮助.

iphone ipad

12
推荐指数
2
解决办法
5479
查看次数

如何判断iOS设备是否有GPS?

对于iPad或iPod touch,有没有办法找出该设备是否有GPS?

额外信用:如果iPad本身没有,但它连接到第三方GPS设备怎么办?我可以确定吗?

core-location ipad ios

11
推荐指数
2
解决办法
1万
查看次数

#if check(预处理器宏)来区分iPhone和iPad

是否有我可以检查的构建预处理器宏,用#if或#ifdef来确定我当前的Xcode项目是否是为iPhone或iPad构建的?

编辑

正如几个答案所指出的,通常应用程序是通用的,并且相同的二进制文件可以在两个设备上运行.这些非常相似的设备之间的条件行为应该在运行时而不是编译时解决.

iphone objective-c c-preprocessor

10
推荐指数
3
解决办法
2万
查看次数