私は、#import
の代わりに@class
をヘッダーファイルに使用するべきだと読んだことがありますが、試しているデリゲートプロトコルが@class
に含まれているとこれが機能しません使用する。@classを使用してデリゲートプロトコルの宣言にアクセスする
MyView.h私は私が何かを見下ろすと思う
#import <UIKit/UIKit.h>
@class MyCustomClass; // <-- doesn't work for MyCustomClassDelegate, used below
@interface MyView : UIView <MyCustomClassDelegate>
@end
は、@class
はこのような状況で動作するようにまたは#import
私の唯一の選択肢である取得する方法はありますか?
編集:これはもちろん、#import MyCustomClassとMyCustomClassDelegateを.hファイルの代わりに.mファイルのプライベートインターフェイスセクションに宣言することです。
ピットをニックネッシュにするのではなく、より正確にする:プロトコルをフォワード宣言できますが、そのプロトコルに準拠したクラスを宣言している場合は(そのヘッダーファイル内では)できません。プロトコルがメソッドの戻り値またはパラメータ型にのみ必要な場合は、それを宣言しても構いません( "@class MyProtocol;"の代わりに "@protocol MyProtocol;"を使用してください)。 – erikprice
更新しました。 – Senseful