2013-09-25 42 views
1

我有我使用第三方庫,用於保存和加載數據的應用程序。使用NSDocument通常情況下,我重寫- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError方法和返回正確的數據,但這個庫我只能訪問到保存程序(也可以創建多個文件,否則我會保存到臨時文件,並返回的數據臨時文件)。可可定製NSDocument節省

我也試過如下:

- (void)saveToURL:(NSURL *)url ofType:(NSString *)typeName forSaveOperation:(NSSaveOperationType)saveOperation completionHandler:(void (^)(NSError *errorOrNil))completionHandler 
{ 
    librarySaveFunction(url.path); 
} 

其中一期工程,但文件標題保持爲「MyFile的 - 編輯」,如果我嘗試再次保存,我得到的文檔已更新錯誤由另一個應用程序(我能通過設置我的文件修改日期來解決這個問題,但該文件仍然被標記爲已編輯,並且感覺非常黑客)。

有沒有人有更好的方式來覆蓋節省日常更好的建議?

回答

2

NSDocument有參與讀取和寫入數據的方法的整體巨大的層次結構。你應該重寫哪一個取決於你的具體情況,以及它們與默認的讀寫機器的關係。當我看到這個問題時,我的直覺反應是,您不希望覆蓋-save*方法,您希望覆蓋-write*方法(可能爲-writeToURL:ofType:forSaveOperation:originalContentsURL:error:),但如果不知道更多關於應用程序細節的信息,很難說(和你用這個第三方庫)。

各種越權分的情況下他們是適合的纔是here的最終討論。