iOS协议代表混淆?

iOS协议代表混淆?,第1张

概述这一切都是我的第一篇文章,我将尽可能准确.我已经阅读了很多关于iOS协议/委托实现的文章,但所有示例都失败了. 让我们说吧 我有A和B控制器,想要从A到B发送数据. 啊 @protocol exampleprot <NSObject>@required-(void) exampledmethod:(NSString *) e1;@end@interface ViewController 这一切都是我的第一篇文章,我将尽可能准确.我已经阅读了很多关于iOS协议/委托实现的文章,但所有示例都失败了.
让我们说吧
我有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协议/代表混淆?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1076021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存