您好,登錄后才能下訂單哦!
最近在新工程上線是遇到很多適配的問題,尤其是舊工程64位設備的適配,現在整理一下。
1.配置Base SDK設置
1)選擇工程導航面板上的工程文件
2)編輯面板上搜索base sdk
Base SDK設置引導編譯器使用該版本的SDK編譯和構建應用,也就是說,它會直接控制應用使用哪些API。
2.Deplyment Target運行應用需要的最低操作系統版本
支持多個SDK時的注意事項:
框架的可用性有時新的SDK會增加一個完整框架,較早的操作系統上該框架是不可用的如iOS5的Twitter.frame,只對iOS5以上的設備可用。同理還有,iOS6中的PassKit.frameworkiOS7中的GameController.Framework
類的可用性有時新SDK可能在已有框架中增加了新類。這意味著即使該框架鏈接了,也并不所有的符號都能在早期操作系統中可用。如iOS7里UIKit.framework中定義的NSLayoutManager類。檢查控件是否可用:
if ([NSLayoutManager class]) { //使用該類 } else { // }
方法的可用性
檢查某個類是否存在某個方法:
if ([self.view respondsToSelector:@selector(setTintColor:)]) { //設置tintColor }
如果檢量的方法是C全局函數
if(CFunction != NULL) { CFunction(a); }
檢查框架、類和方法的可用性
開發者文檔
iOS頭文件中的宏
檢測設備及判斷功能
正確的方法是,應該來檢測硬件或傳感器的可用性,而不是假設設備具有某些功能。
檢測硬件和傳感器
iOS6 PTL例子的源碼:
https://github.com/iosptl/ios6ptl/tree/master/ch26/UIDeviceAdditions
Auto Layout自動調整CAlayer以兼容iPhone5
-(void)viewWillLayoutSubviews { self.patternLayer.frame = self.view.bounds; [super viewWillLayoutSubviews]; }
iPhone 5s 和新的64位架構iPhone 5s支持一種新的指令:arm64。
64位模擬器要配置成x86_64的指令。
在“Build Setting”中將“Architectures”改成“Standard Architectures (including 64-bit)”
轉換成iOS7注意的問題
Auto Layout
支持 iOS6
Application Icon :iOS7 ICON尺寸不同
無加粗線框的按鈕
Tint Color:iOS7新添屬性
Artwork Updates:iOS7支持更多藝術字
第一步是用NSInteger、NSUInteger、CGFloat變為float、int。如果你編譯一個應用,用NSInteger會用64位 integers(long) 代替 32位integers(int)。CGFloat同理。
比較常見的問題是,tableview行高返回值是flaot而非CGFloat,表格無法正常顯示。
參考文檔:
《iOS6 開發實戰》
iOS 7: 如何為iPhone 5S編譯64位應用
開發者文檔:64-Bit Transition Guide
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。