2
我有10.9/Xcode 5,我正在嘗試爲Snow Leopard編寫一個Cocoa應用程序。我停用了自動佈局並將部署目標設置爲10.6,但歸檔應用程序不會在10.6上啓動,因爲它無法加載nib(控制檯輸出)。從我讀過的,我需要使用垃圾收集,而不是ARC。如果這是真的,我該如何修改我的項目以構建並運行10.6?謝謝你的建議。Xcode 5爲OS X開發10.6
我有10.9/Xcode 5,我正在嘗試爲Snow Leopard編寫一個Cocoa應用程序。我停用了自動佈局並將部署目標設置爲10.6,但歸檔應用程序不會在10.6上啓動,因爲它無法加載nib(控制檯輸出)。從我讀過的,我需要使用垃圾收集,而不是ARC。如果這是真的,我該如何修改我的項目以構建並運行10.6?謝謝你的建議。Xcode 5爲OS X開發10.6
首先,確保將XIB本身配置爲構建10.6。在界面生成器的右側窗格中,你會看到如下:
如果您指定64位10.6,那麼你可以使用ARCLite,這是蠻好的,我強烈推薦它。你真正放棄的唯一的事情就是自動調零弱引用。如果你走32位,你只需要放棄ARC。如果你可以幫忙的話,我推薦使用64位。如果你的目標是32位,你會放棄很多。要使用ARCLite,您不必更改任何內容。當您編譯10.6的ARC程序時,它會自動選中。
作爲說明:是的,你在做什麼是完全可能的。我仍然以10.9/Xcode5設置爲目標10.5。
注意,當我們將Xcode5定位到10.5時,我們發現了一個不好的不速之客。對於某些客戶,他們會在所調用的Apple函數(如BUF_MEM_GROW())中的線程5中崩潰。這次崩潰只出現在10.5臺機器上,並且在5年前從未出現過這款應用。這是在32位,非ARC。 –
我不知道如果我的目標機器是64位或32位,但我已經完成了上面列出的步驟,但它不起作用,我猜測它是32位的。我將如何將我的項目轉換爲支持?在ARC引入時我開始開發,所以之前我沒有做過任何其他的工作。 – user2105505
轉換爲手動內存管理只需要關閉構建設置中的「Objective-C自動引用計數」。但是你需要學習手動內存管理。 ocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html但請仔細檢查您是否在32位機器上。當你說「它沒有工作」時,你是否特意指出它抱怨說找不到ARClite? 「它沒有用」涵蓋了很多東西。 –