はい。
CMNewProfileSearch関数は、最適化されたプロファイル のColorSyncバージョン2.5以降の検索を最大限に活用していません。ColorSync Manager Referenceは次のように述べています。代わりにCMIterateColorSyncFolder を使用してください。
CMIterateColorSyncFolder
は、公式の方法です。また、の方法でも最適化されています。 Apple's ImageApp sample codeから
:
編集:私はNewCMProfileIterateUPP
とDisposeCMProfileIterateUPP
を削除するために、コードサンプルを変更しました。
// Callback routine with a description of a profile that is
// called during an iteration through the available profiles.
//
static OSErr profileIterate (CMProfileIterateData *info, void *refCon)
{
NSMutableArray* array = (NSMutableArray*) refCon;
Profile* prof = [Profile profileWithIterateData:info];
if (prof)
[array addObject:prof];
return noErr;
}
// return an array of all profiles
//
+ (NSArray*) arrayOfAllProfiles
{
NSMutableArray* profs=[[NSMutableArray arrayWithCapacity:0] retain];
CMIterateColorSyncFolder(profileIterate, NULL, 0L, profs);
return (NSArray*)profs;
}
それは彼らが私の知る限り、何も交換されていないので、NewCMProfileIterateUPP
とDisposeCMProfileIterateUPP
を必要としないことが判明。代わりに、上記のprofileIterate
に一致するシグネチャでコールバック関数を定義することができます。コールバック関数をCMIterateColorSyncFolder
に直接渡すことができます。
ImageAppで変更をテストしましたが、Mac OS X 10.5では期待通りに動作します。
Mac OS X 10.5では、関数NewCMProfileIterateUPP()およびDisposeCMProfileIterateUPP()は推奨されていません。 –
良い点。 NewCMProfileIterateUPP()とDisposeCMProfileIterateUPP()が使用されなくなるようにコードサンプルを編集しました。うまくいけば、それはあなたのためにすべての答えです。 ;) – Naaff