2011-04-13 30 views
2

我想創建一個支持OS X 10.5的Core Data應用程序(我使用的是Xcode 4)。但是,我注意到創建核心數據應用程序使用10.6和更高版本中提供的函數(例如URLForResource:withExtension:)生成代碼。此外,似乎有一個很大的變化到如何ManagedObjectContext,PersistentStoreCoordinator和ManagedObjectModel在Xcode產生下面4。實施例:使用Xcode 4創建一個10.5友好的Core Data應用程序

的Xcode 4

- (NSManagedObjectModel *)managedObjectModel { 
    if (__managedObjectModel) { 
     return __managedObjectModel; 
    } 
    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"SampleApp" withExtension:@"momd"]; 
    __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];  
    return __managedObjectModel; 
} 

的XCode 3.2

- (NSManagedObjectModel *)managedObjectModel { 
    if (managedObjectModel) return managedObjectModel; 
    managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];  
    return managedObjectModel; 
} 

我正在考慮從一個新的Xcode 3.2項目中複製並粘貼這段代碼,但我不確定這是否會導致某些事情失敗。有沒有辦法讓Xcode 4生成可以在10.5下運行的代碼?

回答

1

確保您將部署目標設置爲10.5。

確保您在10.5系統上測試。不要在沒有測試的情況下部署到10.5用戶,相信它會「正常工作」。

然後,你有兩個選擇。

  1. 您可以在文檔中查找每個API,它將聲明(例如):「在MacOSX 10.6或更高版本上可用」。在這種情況下,您可以繼續使用Xcode 4,但它很乏味(並且容易出錯)。編譯器/鏈接器不會警告你,而不是在10.5中提供方法,相信你做出了正確的決定。

  2. 使用10.5 SDK作爲您的基礎SDK。這是首選解決方案,但需要Xcode 3.2(可在developer.apple.com上免費獲得)。你不會使用新的閃亮Xcode 4,但這是你必須支付的價格來支持3.5喲操作系統(它於2007年10月發佈)。

還有第三種選擇,在Xcode 4安裝10.5 SDK,但它不正式支持,所以我不能建議認真。

如果10.5對您和您的用戶來說真的很重要,我會強烈推薦Xcode 3和10.5 SDK。根據我的經驗,這是最不痛苦的組合。

相關問題