実際、アプリで名前を付けた 3 つのビュー コントローラーがあります。私はAからBに、次にBからCにナビゲートしています。Aに実装されているCからデリゲートメソッドを呼び出しています。これが私のコードです
A.h
#import "A.h"
#import "C.h"
私A.m
が持っている
@interface A()<delegateName>
-(void)delegateMethod
{
NSLog(@"delegate");
}
-(void)moveToB
{
C *instanceOfC=[C alloc] init];
instanceOfC.delegate=self; //line 1
}
のB.h
#"import C.h"
のB.m
-(void)moveToC
{
A *instanceOfA=[[A alloc] init];
C *instanceOfC=[[C alloc] init];
instanceOfC.delegate= instanceOfA; //line 2
}
のC.h
@protocal delegateName <NSObject>
-(void)delegateMethod;
@end
@interface C
@property(nonatomic,weak) id<delegateName> delegate;
@end
のC.m
@synthesize delegate;
-(void)inSomeMethod
{
[delegate delegateMethod];
}
then<delegateName>
のA.h
代わりに入れると、 と表示されます。A.m
undeclared delegate