日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

發布時間:2024/4/17 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 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

轉載于:https://www.cnblogs.com/ydhliphonedev/archive/2011/08/10/2133262.html

總結

以上是生活随笔為你收集整理的Objective-C设计模式(MVC)的实现,以及协议与委托的运用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。