13

最初にプロトコルを宣言してから、それを使用します。しかし、「LeveyPopListViewDelegate のプロトコル定義が見つかりません」という警告が表示されます。コードは次のとおりです。

@protocol LeveyPopListViewDelegate;

@interface LeveyPopListView : UIView <LeveyPopListViewDelegate,UITableViewDataSource,   UITableViewDelegate,UITextFieldDelegate>

//the content of LeveyPopListView

@end

@protocol LeveyPopListViewDelegate <NSObject>
//the definition for LeveyPopListViewDelegate
@end

LeveyPopListViewDelegate最初に定義を入れるLeveyPopListViewと、プロトコルで を使用できません。

4

7 に答える 7

2

この投稿の適切なアドバイスに従っても問題が解決しない場合は、クリーンアップを試してみてください。私はしばらく頭を悩ませていましたが、きれいにすることで問題が解決しました。

于 2013-10-08T16:39:29.153 に答える
1

私はいつもこのようにしています:

@class LeveyPopListView;

@protocol LeveyPopListViewDelegate <NSObject>
//the definition for LeveyPopListViewDelegate
@end

@interface LeveyPopListView : UIView <LeveyPopListViewDelegate,UITableViewDataSource,   UITableViewDelegate,UITextFieldDelegate>

//the content of LeveyPopListView

@end
于 2013-02-21T01:57:08.170 に答える
1

また、別のファイルでプロトコルを宣言および定義した場合は、#importそのファイルを使用する必要があります。この状況では、前方宣言は役に立ちません。

ところで。一部の回答が示唆するように、警告を抑制しないでください。

于 2018-12-20T08:54:40.523 に答える
0

プロトコル定義で具体的なクラス名を使用する必要があるのは珍しいことです。あなたがしなければならないこと (ほとんどの場合、例外が適用されるかもしれません... 悪臭はしますが) は、クラスをプロトコルに準拠させ、デリゲート プロトコル定義でそのクラスを使用することです。

また、クラスが独自のデリゲートである必要があることも悪臭です。慎重にデザインを見直します。

于 2015-06-05T13:50:07.687 に答える
-1

最初にプロトコルを定義する必要があります。以下のようにしてみてください

@protocol LeveyPopListViewDelegate <NSObject>
//the definition for LeveyPopListViewDelegate
@end

@interface LeveyPopListView : UIView <LeveyPopListViewDelegate,UITableViewDataSource,   UITableViewDelegate,UITextFieldDelegate>

//the content of LeveyPopListView

@end
于 2013-02-21T01:58:52.293 に答える