技术开发 频道

Cocoa的MVC架构分析

  【IT168 技术文档】Cocoa是Mac OS和iPhone OS上的开发框架,使用Objective-C做为开发语言。当然,在代码中也可以嵌入C和C++的语句。初识Objective-C时会觉得它的语法很奇怪,但本质上和其他面向对象语言都差不多。具体语法大家可以参考相关文档。

  在Cocoa框架中:

  所有的控件、窗口等都继承自 UIView,对应MVC中的 V。UIView及其子类主要负责UI的实现,而UIView所产生的事件都可以采用委托的方式,交给UIViewController实现。对于不同的UIView,都有相应的UIViewController 对应MVC中的C。比如在iPhone OS上常用的UITableView,它所对应的Controller就是UITableViewController。至于MVC中的M,那需要根据用户自己的需求来实现了。

   下面看一下一个自定义UIView的架构是怎么样的。这之前要认识一下Objective-C中的几个重要的关键字。

  @interface 定义一个类,这个很容易和Java中的interface混淆。

  @protocol 定义一个协议,我跟喜欢把它理解成一个接口,相当于Java中的interface。

  Objective-C只支持单继承,但可以实现多个协议(接口),语法如下:

@interface Child : Parent <Protocol1,Protocol2>  
  
{  
  
//成员变量定义  
  
}  
  
//成员方法,类方法,属性定义  
  
@end  

  有了以上的知识后,我们就可以来定义自己的UIView了。

  首先是定义一个UIView的子类。

@interface MyUIView : UIView  
{  
  
//定义一些控件  
  
id
<MyUIViewDelegate> delegate; //这个定义会在后面的解释,它是一个协议,用来实现委托。  
  
}  
  
//定义一些控件设置方法  
@property id<MyUIViewDelegate> delegate; //定义一个属性,可以用来进行get set操作  
  
@end  
0
相关文章