iOS获取当前系统的相关信息和在不同的IOS上检测

来源:互联网 发布:秦朝灭亡 知乎 编辑:程序博客网 时间:2024/06/05 08:16

NSLog([[UIDevice currentDevice] name]); // 获取设备的名称

NSLog([[UIDevice currentDevice] uniqueIdentifier]); //获取GUID 唯一标识符

NSLog([[UIDevice currentDevice] systemName]); //获取系统名称

NSLog([[UIDevice currentDevice] systemVersion]); // 版本号

eg.

float version = [[[UIDevice currentDevice] systemVersion] floatValue];  

 if (version >= 5.0) {

  //ios的处理

}

最近在做项目中发现。ios5下和其之前的版本(ios4.0.2)坐标位置不一样。 正好相差20px。所以使用拉上面的特殊处理。



2。隨著 iOS 版本越來越多,程式碼的相容性問題也慢慢浮上檯面。比如說可能因爲某些 API 只適用於 iOS4,而到了 iOS5 則必需使用另外的 API 來處理。這個時候你的 code 裏面可能就同時包含了這兩種版本的程式碼。不過這個程式碼放到舊版的 XCode 可能就沒有辦法通過編譯了。這個時候你可以使用以下的方式來避開這點:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000
// ios 5
// ex. 如果要檢查的版本是 4.1 那麽可以用 40100
#endif

如果要檢查是某個類别是否可以使用的話,那麽就可以使用這樣的方式:

Class ios5Class = (NSClassFromString(@"CIImage"));
if (nil != ios5Class) {
}

* 4.2 以上(含)的版本可以使用弱連結(Weak linking)的檢查,例如:

if( [CIImage class] ){
}

而如果要檢查某個類别內是否具有某些 selector 的話,那麽可以使用 NSObject protocol 裏面的 respondsToSelector: 來做檢查,例如:

if( [obj respondsToSelector@selector(goodbye:] ) {
}

转自:http://blog.csdn.net/nogodoss/article/details/7187022