OS X 10.6 で導入された新しいNSURL
ブックマーク データ API を使用して、ファイル システム リソースに「エイリアス」を保存しています。私が使うとき
+[NSURL URLByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error:]
ブックマーク データを解決するにはnil
、ファイルがもう存在しないかどうかを取得します。ブックマークの解決オプションを渡していないのでNSURLBookmarkResolutionWithoutUI
、解決されなくなったエイリアス ファイルを開いたときに Finder に表示されるようなダイアログが表示されることを期待していました (つまり、キャンセルするダイアログ、エイリアスを修正するダイアログなど...)。 .
NSURL
壊れたブックマーク データを再接続/解決するように自動的に求める方法はありますか?
ブックマーク データは次の方法で作成されます。
NSError *err
NSData *bookmarkData = [myFileURL bookmarkDataWithOptions:NSURLBookmarkCreationSuitableForBookmarkFile
includingResourceValuesForKeys:nil
relativeToURL:nil
error:&err];
0
の代わりにオプションを使用しても同じ結果が得られますNSURLBookmarkCreationSuitableForBookmarkFile
。
私は次の方法で同じことを解決しようとしますbookmarkData
:
BOOL stale;
NSError *err
NSURL *resolvedURL = [NSURL URLByResolvingBookmarkData:self.bookmarkData
options:0
relativeToURL:nil
bookmarkDataIsStale:&stale
error:&err];
ブックマーク データをファインダー エイリアス ファイルに書き込み、そのファイルからブックマーク データを読み取って URL を解決し、その後上記の方法を実行しても、目的の UI 結果は得られません (ただし、ファインダーでエイリアス ファイルを開くと、目的の UI ダイアログ)。