当前位置: 首页 > news >正文

开发网站做什么法制网站建设问卷调查

开发网站做什么,法制网站建设问卷调查,商品网站开发,如何建设一个国外网站Objective-C委托和协议本没有任何关系#xff0c;协议如前所述#xff0c;就是起到C中纯虚类的作用#xff0c;对于“委托”则和协议没有关系#xff0c;只是我们经常利用协议还实现委托的机制#xff0c;其实不用协议也完全可以实现委托。 AD#xff1a;【活动】Web和AP… Objective-C委托和协议本没有任何关系协议如前所述就是起到C中纯虚类的作用对于“委托”则和协议没有关系只是我们经常利用协议还实现委托的机制其实不用协议也完全可以实现委托。 AD【活动】Web和APP兼容性实战 Win10训练营免费报名 Objective-C中委托和协议是本文要介绍的内容委托和协议是两个概念协议实际上相当于C中的纯虚类的概念只定义并只能由其它类来实现。而委托类似于Java中的接口。Objective-C实现委托这种机制是利用协议来实现的这种说法我现在认为是不对的理由下述。 Objective-C委托和协议本没有任何关系协议如前所述就是起到C中纯虚类的作用对于“委托”则和协议没有关系只是我们经常利用协议还实现委托的机制其实不用协议也完全可以实现委托。下面说明了实现方式 定义一个类A interface A:NSObject  -(void)print;  end  implement A  -(void)print{  }  end 定义一个类B在B中定义类A的实例为B中的成员变量: interface B:NSObject{         A *a_delegate;  }  end 下面在mai()函数中实现委托机制 void main()  {  B *b[[B alloc]init];  A *a[[A alloc]init];  b.a_delegatea;  [b.a_delegate print];  } 这样最基本的委托机制就完成了套用最通俗的一句解释B需要完成一个print的操作但他自己并没有实现这个操作而是交给了A去完成自己只是在需要时调用A中实现的print操作。 下面再写一种实现方式这样方式更接近于我们通常见到的用协议还实现的方式 我们还是定义一个类A interface A:NSObject  B *b;  }  -(void)print;  end  implement A  synasize delegate;  -(void)viewDidLoad{  b[[B alloc]init];  b.delegateself;  }  -(void)print{  NSLog(print was called);  }  end 然后类B的定义改成如下所示 interface B:NSObject{  id delegate  }  propert(nonamtic,retain) id delegate;  end   现在我们不用main()函数在B的实现部分来实现委托机制   implement B  -(void)callPrint{  [self.delegate print];  }  end 上面这种实现方式和第一种其实是一样的只是第一种是在第三方函数调用委托方法。delegate是id类型本例中就是A类的一个实例当然可以 调用A类中的print。第二种方式不存在第三方函数是在B类中调用 A类中的方法。或者说B中需要print方法自己不实现让A来实现自己调用 。 再接下来就是最常见的用协议实现委托的方式说明如下 protocol-协议就是使用了这个协议后就要按照这个协议来办事协议要求实现的方法就一定要实现。 delegate-委托顾名思义就是委托别人办事就是当一件事情发生后自己不处理让别人来处理。 当一个A view 里面包含了B view b view需要修改a view界面那么这个时候就需要用到委托了。 需要几个步骤 1、首先定一个协议 2、a view实现协议中的方法 3、b view设置一个委托变量 4、把b view的委托变量设置成a view意思就是 b view委托a view办事情。 5、事件发生后用委托变量调用a view中的协议方法 例子 B_View.h:  protocol UIBViewDelegate NSObject optional  - (void)ontouch:(UIScrollView *)scrollView; //声明协议方法  end  interface BView : UIScrollViewUIScrollViewDelegate {  id UIBViewDelegate  _touchdelegate; //设置委托变量  }  property(nonatomic,assign) id UIBViewDelegate  _touchdelegate;   end  B_View.mm:  synthesize _touchdelegate;  - (id)initWithFrame:(CGRect)frame {  if (self  [super initWithFrame:frame]) {  // Initialization code  _touchdelegatenil;  }  return self;  }  - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event  {  [super touchesBegan:touches withEvent:event];  if(_touchdelegate!nil  [_touchdelegate respondsToSelector: selector(ontouch:) ]  true)   [_touchdelegate ontouch:self]; //调用协议委托  }   end  A_View.h:  interface AViewController : UIViewController  UIBViewDelegate  {  BView *m_BView;  }  end  A_View.mm:  - (void)viewWillAppear:(BOOL)animated  {  m_BView._touchdelegate  self; //设置委托  [self.view addSubview: m_BView];  }  - (void)ontouch:(UIScrollView *)scrollView  {     //实现协议  } 小结详解Objective-C中委托和协议的内容介绍完了希望通过本本文的学习能对你有所帮助 转载于:https://www.cnblogs.com/Free-Thinker/p/4988948.html
http://www.zqtcl.cn/news/167765/

相关文章:

  • 拖拽做网站cms系统设计
  • 村建站什么部门网站建设步骤图
  • 移动端网站建设的意义中工信融网站建设
  • 网站设计宽屏尺寸盐城网站建设渠道合作
  • 网站所有者查询hexo做网站
  • 杭州专业网站设计策划大数据网站建设和
  • 建一个自己的网站需要多少钱泰州网站快速排名优化
  • 企业网站的建设企业湖南网络推广
  • 山西省建设厅投诉网站郴州新网交友手机版
  • 营销网站建设是什么flash个人网站欣赏
  • 网站建设最简单的教程视频教程建设厅注册中心网站首页
  • 免费做网站凡科wordpress 分享到微信 插件
  • 购物网站项目建设内容有啥网站是专做时尚穿搭
  • 网上下载的网站模板怎么用wordpress 注册密码
  • 网站建设免费国外撤销网站备案申请书
  • 佛山做网站那家好网站建设公司如何盈利
  • 傻瓜建网站设计感网站
  • 北京网站优化软件陕西省建筑信息平台
  • 广州越秀建网站济南房产网新开楼盘
  • 线上咨询预约网站建设方案保定外贸网站制作
  • 网站流量如何增加提高工作效率的措施
  • 龙湖镇华南城网站建设.net 网站开发书籍
  • 域名费用和网站服务器费用是同样的吗推广营销方案
  • 安徽网站设计方案中文外贸网站有哪些
  • 衡阳手机网站设计响应式网站做多大的尺寸
  • 海尔电子商务网站建设预算灵台县门户网
  • 四川网站建设设计公司排名开发公司与建筑公司合作协议
  • 江西智能网站建设嘉定注册公司
  • 海口网站建设联系方式十大免费软文推广平台
  • 石碣镇做网站帮别人做网站开价