我正在使用以下代码来调用app.In xcode 5它运行正常。但是在xcode 7 beta版本中,我在iOS模拟器上运行我的应用程序,并且if ([[device model] isEqualToString:@"iPhone"] )
对于模拟器来说是正确的。怎么样?
if ([[device model] isEqualToString:@"iPhone"] )
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel:130-032-2837"]]];
}
else
{
UIAlertView *notPermitted=[[UIAlertView alloc] initWithTitle:@"Error" message:@"Your device doesn't support this feature." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[notPermitted show];
}
答案 0 :(得分:0)
答案 1 :(得分:0)
设备或模拟器定义为基于所选目标的构建时间。这是通过在UIDevice
上添加类别来实现此目的的:
@implementation UIDevice (Addition)
- (BOOL)isSimulator {
#if TARGET_IPHONE_SIMULATOR
return true;
#else
return false;
#endif
}
+ (BOOL)isSimulator {
return [[self currentDevice] isSimulator];
}
然后简单地致电:
[UIDevice isSimulator]
答案 2 :(得分:0)
如果您只是想检查一下您是在模拟器中运行还是在真实设备上运行,我强烈建议您使用TARGET_OS_SIMULATOR
定义(包含在SDK
中)
像这样使用:
#if !(TARGET_IPHONE_SIMULATOR)
//use case for iPhone
#else
//use case for simulator
#endif
我在当前项目Xcode 7
和iOS9 SDK
编辑: 正如trojanfoe所说,这是一个编译时检查,而不是运行时检查。
如果您想要对模拟器进行运行时特定检查,可以使用:
if ([[[UIDevice currentDevice].model lowercaseString] rangeOfString:@"simulator"].location != NSNotFound) {
}