プロジェクトに次のコードがあります
NSAppleEventDescriptor *JHCreateAliasDescriptorForURL(NSURL *aURL) {
NSAppleEventDescriptor *retObj = nil;
FSRef fsReference;
if (CFURLGetFSRef((__bridge CFURLRef)aURL, &fsReference)) {
AliasHandle aliasHandle = NULL;
OSStatus err = FSNewAliasMinimal(&fsReference, &aliasHandle);
if (err == noErr && aliasHandle != NULL) {
HLock((Handle)aliasHandle);
retObj = [NSAppleEventDescriptor descriptorWithDescriptorType:typeAlias
data:[NSData dataWithBytes:*aliasHandle
length:GetHandleSize((Handle)aliasHandle)]];
HUnlock((Handle)aliasHandle);
DisposeHandle((Handle)aliasHandle);
}
}
return retObj;
}
AppleScript 対応ではないが、この 1 つの AppleEvent に応答するプログラムにファイルを渡すエイリアス記述子を作成します。
これを 10.8 でコンパイルすると、すべての Carbon関数が非推奨になり、 APIからFSNewAlias*
不透明なブックマークNSData
オブジェクトを使用することになっているため、警告が表示されます。NSURL
しかし、このデータをエイリアスの AppleEvent 記述子に変換することはできませんでした。
typeAlias
なしで10.8で記述子を作成するにはどうすればよいFSNewAlias*
ですか?