2

PDFドキュメントをPDFViewにロードするために、Quartz.frameworkをプロジェクトに追加しました。

それ以来、これまで使用したことはありませんが、奇妙なエラーメッセージが表示さ れます。 「state」という名前の複数のメソッドが見つかり、結果、パラメータタイプ、または属性が一致していません。

AppKit.framework / NSCellのstateメソッドを使用して、チェックボックスが次のようにオンまたはオフになっているかどうかを確認しています。

BOOL replaceCheckBoxFlag = ([sender state] == NSOnState);

Quartz.frameworkの一部であるImageCaptureCore.frameworkも、メソッド状態を所有しています。Xcodeが混乱する可能性はどのようにありますか?

私に何ができる?ヒントはありますか?

ロナルド

4

1 に答える 1

4

これは、senderが型として宣言されているために発生しidています。つまり、コンパイラはそれがObjective-Cオブジェクトであることを認識していますが、それがどのクラスに属しているかは認識していません。したがって、すべてのクラス定義を調べて2つの一致が見つかり、どちらを使用するかがわかりません。

解決策は、それをキャストするか、正しいタイプの新しい変数を使用することです。

BOOL replaceCheckBoxFlag = ([(NSCell *)sender state] == NSOnState);

また

NSCell *cell = sender;
BOOL replaceCheckBoxFlag = ([cell state] == NSOnState);
于 2012-11-24T05:03:06.040 に答える