おそらくこれは間違った方法ですが、どうすればコンパイラの警告を消すことができるのだろうか?
@interface SomeView : UIView {
NSString *stringOfsomeImportance;
RelatedClass *niftyService;
}
@property (nonatomic, copy) NSString * stringOfnoImportance;
@property (nonatomic, retain) RelatedClass *niftyService;
@implementation
-(void)someMethod;
-(void)otherMethods;
@implementation RelatedClass *pvSomeObj = [[RelatedClass alloc] initWithSender:self];
[self setNiftyService:pvSomeObj];
さて、RelatedClass の実装を見てみましょう...
@interface RelatedClass : NSObject {
id thesender;
@property (nonatomic, retain) id thesender;
@implementation
[thesender otherMethods]; // this generates a compiler warning
// that otherMethods cannot be found
// in SomeView, though it *is* found
// and seems to execute just fine
これは有効なアプローチのように思えるので、なぜ警告が表示されるのか疑問に思っています。これをコンパイラに「説明」する方法はありますか?
このタイプのリンケージが奨励されているか、または相互に通信する必要がある 2 つの関連する相互依存クラスをリンクするより良い方法があるかどうか、誰かが親切に共有できますか?
SomeView は RelatedClass をメンバーとして定義されているため、RelatedClass で送信者オブジェクト (SomeView) を静的に宣言することはできません。再帰の問題が発生するようです...
助言がありますか?