让我们说吧
我有A和B控制器,想要从A到B发送数据.
啊
@protocol exampleprot <NSObject>@required-(voID) exampledmethod:(Nsstring *) e1;@end@interface VIEwController{__weak ID <exampleprot> delegate}
–
上午
在某些程序中
我试着推
[delegate examplemethod:@"test"]
B.h
@interface test2 : UiVIEwcontroller <exampleprot>
在B.m实现方法 – (voID)exampledmethod:(Nsstring *)e1;
那么我做错了什么?
解决方法 基本上这是自定义委托的示例,它用于将消息从一个类发送到另一个类.因此,要在另一个类中发送消息,您需要先设置委托,然后在另一个类中使用协议.以下是示例: –班级
@protocol sampleDelegate <NSObject>@required-(Nsstring *)getDataValue;@end@interface BWindowController : NSWindowController{ ID<sampleDelegate>delegate;}@property(nonatomic,assign)ID<sampleDelegate>delegate;@end
在B.m班
- (voID)windowDIDLoad{ //below only calling the method but it is impelmented in AwindowController class if([[self delegate]respondsToSelector:@selector(getDataValue)]){ Nsstring *str= [[self delegate]getDataValue]; NSLog(@"RecIEved=%@",str); } [super windowDIDLoad];}
在A.h班
@interface AWindowController : NSWindowController<sampleDelegate> //conforming to the protocol
在A.m班
//Implementing the protocol method -(Nsstring*)getDataValue { NSLog(@"recIEved"); return @"recIEved"; }//In this method setting delegate AWindowController to BWindowController -(voID)yourmethod { BWindowController *b=[[BWindowController alloc]init]; b.delegate=self; //here setting the delegate }总结
以上是内存溢出为你收集整理的iOS协议/代表混淆?全部内容,希望文章能够帮你解决iOS协议/代表混淆?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)