执行环境
可以从 UIDevice 的属性 model 得到在现在执行的环境。例子如下:
NSString *modelname = [[UIDevice currentDevice]model];
if ([modelname isEqualToString:@"iPhone"]) {
// iPhone
}
if ([modelname isEqualToString:@"IPod Touch"]) {
// iPod touch
}
if ([modelname isEqualToString:@"iPhone Simulator"]) {
// iPhone Simulator
}
iPhone 机器版本
可以通过 uname 函数取得当前机器的版本。例子如下:
struct utsname u;
uname(&u);
NSString *machine = [NSString stringWithCString:u.machine];
if ([machine isEqualToString:@"iPhone1,1"]) {
// iPhone 1G
}
if ([machine isEqualToString:@"iPhone1,2"]) {
// iPhone 3G
}
if ([machine isEqualToString:@"iPhone2,1"]) {
// iPhone 3GS
}
if ([machine isEqualToString:@"iPod1,1"]) {
// iPod touch 1G
}
if ([machine isEqualToString:@"iPod2,1"]) {
// iPod touch 2G
}
if ([machine isEqualToString:@"iPod3,1"]) {
// iPod touch Late2009
}
或者通过 sysctlbyname() 函数取得:
- (NSString *) platform
{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
/*
Possible values:
"iPhone1,1" = iPhone 1G
"iPhone1,2" = iPhone 3G
"iPhone2,1" = iPhone 3GS
"iPod1,1" = iPod touch 1G
"iPod2,1" = iPod touch 2G
*/
NSString *platform = [NSString stringWithCString:machine];
free(machine);
return platform;
}
iPhone OS 版本
可以使用 UIDevice 的属性 systemVersion 来得到。例子如下:
NSString *osversion = [UIDevice currentDevice].systemVersion;
if ([osversion isEqualToString:@"2.1"]) {
// iPhone
}
if ([osversion isEqualToString:@"2.2.1"]) {
// iPod touch
}
if ([osversion isEqualToString:@"3.0"]) {
// iPhone Simulator
}
iPhone SDK 版本宏
就像在windows系统下用 WINVER 宏来判断 windows 系统版本一样,iPhone OS 中也有类似的宏。
// 当前系统支持的最小版本
__IPHONE_OS_VERSION_MIN_REQUIRED
// 当前系统支持的最大版本
__IPHONE_OS_VERSION_MAX_ALLOWED
比如用 iPhone OS SDK 3.1.2 编译的程序
__IPHONE_OS_VERSION_MIN_REQUIRED == __IPHONE_3_0
__IPHONE_OS_VERSION_MAX_ALLOWED == __IPHONE_3_1
这时,我们可以在程序中使用下面类似的 $ifdef 语句:
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_2_2
// iPhone OS SDK 3.0 以后版本的处理
#else
// iPhone OS SDK 3.0 之前版本的处理
#endif
又或者 iPhone OS SDK 4 推出的时候,可以:
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_2_2
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_3_1
// iPhone OS SDK 4.0 以后版本的处理
#else
// iPhone OS SDK 3.0 ~ 4.0 版本的处理
#endif
#else
// iPhone OS SDK 3.0 之前版本的处理
#endif
分享到:
相关推荐
【iPhone初学者开发小技巧】 在iOS开发领域,特别是对于初学者来说,掌握一些实用的技巧可以大大提高开发效率,减少不必要的麻烦。以下是一些在iPhone应用开发中可能会遇到的常见问题及其解决办法: 1. **截取...
本文将根据“Xcode 使用技巧 Objective-C学习之路 iPhone”的标题、描述及部分内文,深入探讨Xcode中的关键功能及其应用。 #### 一、更改项目名称和公司信息 在Xcode中,为了使代码更具专业性和个性化,开发者通常...
【描述】中提到,我们可以对Segment的文字、颜色和图片进行定制,并且特别提示解压环境需在Mac下进行,因为iOS应用的开发通常是在Mac上使用Xcode完成的。 1. **UISegmentedControl的基本使用**: - ...
本文将详细探讨如何在Android应用中实现仿iPhone状态栏的技巧和方法,以及涉及到的相关技术。 首先,我们需要理解Android状态栏的基本结构和功能。在Android系统中,状态栏位于屏幕顶部,显示着网络连接、电量、...
在iOS开发中,有时我们需要根据用户的设备类型来调整应用程序的行为,比如界面布局或者功能支持。本文将详细讲解如何通过编程的方式判断用户设备是iPad还是iPhone。这个知识点在iOS开发中非常基础,也是优化用户体验...
### iPhone Human Interface Guidelines #### 知识点概览 1. **概述** ...总之,《iPhone Human Interface Guidelines》是一份宝贵的资源,对于希望在iOS平台上成功开发应用程序的人来说至关重要。
同时,介绍了如何设置和获取项目代码,以便在XCode环境中开始进行iOS图形开发。 8. 教程的目的和学习建议:教程的主要目的是帮助初学者快速入门OpenGL ES,在iPhone平台上进行游戏和图形应用的开发。作者鼓励初学者...
《iPhone4 拆机详解:步骤、技巧与注意事项》 在软件开发过程中,有时我们需要对设备进行硬件级别的操作,...希望这篇教程能帮助你成功地拆解和组装你的iPhone 4,让你在软件开发之外,也能掌握硬件维护的实用技能。
在iOS开发中,处理多点触控事件是开发交互式应用不可或缺的一部分。iPhone等iOS设备拥有先进的触控屏幕技术,能够处理复杂的多点触控手势,如轻拍、拖动和滑动等。开发者需要掌握如何在应用程序中妥善处理这些触控...
通过学习和理解这份源码,开发者不仅能掌握Android界面设计的技巧,还能深入理解自定义View的绘制原理,提升Android开发能力。同时,此源码也适合于那些正在构建聊天应用的开发者,他们可以直接借鉴或修改,以快速...
最后,文档的作者提到了他个人参与了两个iPhone项目,并将在这过程中对Objective-C语言的理解和开发经验整理成文档,希望与有意从事iPhone开发的朋友分享。作者还表示,文档内容部分参考了网页、斯坦福大学课程和...
在iOS开发中,屏幕适配是一项至关重要的任务,因为不同的设备有着不同的屏幕尺寸和分辨率。以下是一些关于iOS屏幕适配开发的实用技巧。 首先,处理屏幕旋转是适配过程中的一个基本步骤。通过注册`...
JavaScript 判断iPhone X Series机型的方法是一项重要的前端开发技巧,尤其对于需要进行屏幕适配和特殊设计的移动Web应用而言。由于iPhone X系列设备(包括iPhone X、iPhone XS、iPhone XS Max和iPhone XR)引入了...
- **调试技巧**:由于没有官方的支持,开发人员需要通过逆向工程和其他技巧来调试内核。 - **工具与资源**:虽然官方不提供调试支持,但可以使用第三方工具和社区资源进行调试。 - **调试流程**:调试iOS内核涉及...
《iOS 11应用开发精华》是Neil Smyth所著的一本书,旨在指导开发者如何使用Swift语言和Xcode开发工具来开发适用于iOS 11的iPhone应用。本书涵盖了从基础概念到高级特性的广泛内容,适合初学者和已有一些iOS开发经验...
- **定义**: iOS 是苹果公司为其iPhone和iPad设备开发的操作系统。 #### 九、计算器类型 **知识点16:计算器类型** - **标准计算器**: Windows 7 提供了多种类型的计算器,除了科学型、程序员、统计信息外,还有一...