• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Objective-C设计模式(MVC)的实现,以及协议与委托的运用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  在iPhone的开发过程中经常要用到界面,而苹果公司为其设计了很好的管理思路,就是采用常用的MVC模式,在iPhone中,所有的图形控件都是继承于UIView,就是"V".UIView及其子类主要负责UI的实现,而UIView所产生的事件都可以采用委托的方式,交给UIViewController实现.对于不同的 UIView,都有相应的UIViewController 对应MVC中的"C".对于"M",也就是数据模型,那就留给用户自己发挥了.

  Objective-C只支持单继承,和java很像,单可以实现多个协议(Protocol).

首先,定义个View

1.@interface MyUIView : UIView {   
2.
3.
4.  //定义一些控件
5.
6.  id<MyUIViewDelegate> delegate; //这个定义会在后面的解释,它是一个协议,用来实现委托。
7.
8.}
9.
10.//定义一些控件设置方法
11.@property id<MyUIViewDelegate> delegate; //定义一个属性,可以用来进行get set操作
12.
13.@end

然后定义一个Protocol,按照Cocoa的习惯,一般它以delegate结尾,熟悉C#的同学应该知道它的意义.其实不论是接口,委托,还是回调函数,本质上都做了一件事情.就是定义了一个操作契约,然后由用户自己来实现它的具体内容.

1 @protocol MyUIViewDelegate  
2 //这里只需要声明方法
3 - (void)func1
4 - (int)func2:(int)arg
5
6 @end
 

完成以上两步之后就需要设计自己的UIViewController了.一般简单的做法,可以让这个Controller来实现上面定义的MyUIViewDelegate.在Cocoa框架中,很多控件和它的Controller都是采用的这种方式.

1.@interface MyUIViewController : UIViewController <MyUIViewDelegate>  
2.{
3.//成员变量
4.}
5.
6.//成员方法,类方法,属性
7.
8.@end

定义好了,现在,你只要在MyUIViewController中声明MyUIView成员变量,并把自己作为委托对象传给MyUIView,就可以成为MyUIView的代理,这样,当MyUIView某事件发生时就可以调用MyUIViewController中实现的委托方法了.

  说的很是浅显,具体实现请自己完成,自己练习.

by MAC-z


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap