Objective-C设计模式(MVC)的实现,以及协议与委托的运用
在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 MyUIViewDelegate2 //這里只需要聲明方法
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
轉載于:https://www.cnblogs.com/ydhliphonedev/archive/2011/08/10/2133262.html
總結
以上是生活随笔為你收集整理的Objective-C设计模式(MVC)的实现,以及协议与委托的运用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 检测xcode工程中配置信息是否正确
- 下一篇: 窗体的Alpha通道透明色支持