データの保存と読み込みにサードパーティのライブラリを使用するアプリケーションがあります。通常、NSDocument を使用する場合、- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
メソッドをオーバーライドして適切なデータを返しますが、このライブラリでは、保存ルーチンにしかアクセスできません (複数のファイルを作成することもできます。それ以外の場合は、一時ファイルに保存してそのデータを返します)。一時ファイル)。
私も次のことを試しました:
- (void)saveToURL:(NSURL *)url ofType:(NSString *)typeName forSaveOperation:(NSSaveOperationType)saveOperation completionHandler:(void (^)(NSError *errorOrNil))completionHandler
{
librarySaveFunction(url.path);
}
これは機能しますが、ドキュメントのタイトルは「MyFile - Edited」のままで、もう一度保存しようとすると、ドキュメントが別のアプリケーションによって更新されたというエラーが表示されます (ファイルの変更日を設定することでこれを解決できました。しかし、ファイルはまだ編集済みとしてマークされており、非常にハッキングされているように感じます)。
保存ルーチンをオーバーライドするためのより良い方法について、より良い提案がある人はいますか?