0

詳細に立ち入り、NDAを破ることなく...

OSX の開発者向けプレビューで、以前はクラスのカテゴリとして API を実装する必要があった AppKit の一部になっている特定の API が示されている場合、その将来の SDK に対してビルドおよびリンクされたものが引き続き実行されるようにするにはどうすればよいですか?現在のOSで。

したがって、現在の SDK for Lion では抽象的な意味でcoolThing、クラスのカテゴリにメソッドが定義されているNSFooBarので、呼び出すことができます。

object.thing = fooBarInstance.coolThing

ただし、将来の SDK は、coolThing現在 SDK によって提供されていることを示しているため、ビルド時にカテゴリが競合します。

この種の混乱なしで将来のSDKにリンクされている場合、アプリケーションがLion(シンボルが使用できない場合)で引き続き動作することを確認できますか.

if(OSVersion == Lion) {
    return myImplementation;
}
else {
    return SDKNativeImplementaion;
}

カテゴリに隠すことができると思いますが、少し混乱しているようです.

4

1 に答える 1

0

これが、カテゴリメソッドのプレフィックスを付ける必要がある理由です。したがって、の代わりにcoolThing、それまたはそのようなものと呼ぶことができますwb_coolThing。カテゴリメソッドは、実行時にメソッドがあるかどうかを確認しcoolThing、可能な場合はそれを呼び出すか、ない場合は独自の実装を使用します。

于 2012-06-02T13:16:50.943 に答える