1

OK、これが私の状況です...

私のアプリデリゲートは次のように宣言されています:

@interface AppDelegate : NSObject <NSApplicationDelegate>

@property (assign) IBOutlet NSWindow *window;
@property (assign) ppDocumentManager* documentManager;

今、私がアクセスしようとしている別の場所からdocumentManager、次のように:

AppDelegate* de = (AppDelegate*)[[NSApplication sharedApplication] delegate]; 
ppDocumentManager* docs = [de documentManager];

また、ファイルの先頭に@class AppDelegate;、コンパイラが何のAppDelegate略かを認識できるように追加しました。

そして、それはうまくいきます。


ただし、警告が表示され続けます。

Instance method '-documentManager' not found (return type defaults to 'id')

すべての警告をなくすにはどうすればよいですか?

4

2 に答える 2

2

OK、これは私のために働いたものです:

  • 循環参照のリスクを回避するために、ファイル@class AppDelegate;の先頭でを使用することにしました。.mdocumentManager

しかし、それは必要ではなかったことが判明しました。

インポートAppDelegate.hしたばかりで、すべてが整っています。

ふぅ……

于 2013-02-16T12:47:10.170 に答える
0

私は同じ問題を抱えていましたが、「MyAppDelegate」のようなカスタム名ではなく、「AppDelegate」という名前の appdelegate が原因であることがわかりました。

クラスの名前を「MyAppDelegate」に変更し、「MyAppDelegate.h」へのインポートでうまくいきました。

于 2013-05-03T12:48:18.607 に答える