OC

Knowledge OS
登录 注册
全部话题 移民 创业 iOS Mac Objective-C Swift Android 招聘 求职

delegate对调用者很友好啊

清醒疯子
清醒疯子 发布于 2013年11月04日
无人欣赏。

1、建立协议

2、实现协议方法

3、调用协议方法

调用者只需要知道协议名称和方法结果,不用管究竟是谁实现的。很牛的样子啊:)

共19条回复
楼长 ·
清醒疯子 回复于 2013年11月04日

只需要知道包含protocol的头文件(.h),和提供方法说明的文档,就ok了:)

2楼 ·
zhangmeteor 回复于 2013年11月05日

最近在读一本书,尽量第一把protocol单独写成一个.h文件,其次,尽量把protocol调用放在用匿名category中。。。觉得挺在理的,分享下。

3楼 ·
nickel 回复于 2013年11月05日

delegate其实只是一种observor观察者模式的实现而已,没什么需要惊讶的。

4楼 ·
Sungrone 回复于 2013年11月05日

你用多了之后,再用BLOCK,就会觉得这个很麻烦了

5楼 ·
terryso 回复于 2013年11月05日

3楼 @nickel 的确没啥好惊讶,这是iOS里最基本的东西。。。

6楼 ·
清醒疯子 回复于 2013年11月05日

2楼 @zhangmeteor

谢谢分享:) 回头看看匿名category是什么:)category挺好用的,不破坏原类的前提下增加新功能:)

3楼 @nickel observor模式,以后看看这方面的内容:)

4楼 @Sungrone BLOCK只是看到过,以后再学习,感觉很高级的样子:)

5楼 @terryso 新手都这样:):):)

7楼 ·
nickel 回复于 2013年11月05日

有空看看《设计模式》,码农必看的书,在入门一段时间后就该看看这本书了,但不建议刚开始做开发的时候看,没有一定经验,见过代码太少的话看了也没体会。

block其实用起来很简单,远比delegate简单,如果你写过javascript,尤其是用过jquery这类框架的话,应该会对block的模式很熟悉。只是在objc里用block还是得注意一些,尤其是要考虑block的实现者与使用者的生存期差异问题。Delegate呢其实更"优雅"一点,从设计模式的角度来讲,但block会更方便。不是什么时候都该用block来替代delegate的,例如是你需要的delegate里有比较多特性的话。

用category要注意一般不能给原类增加property的,只能增加方法。非要增加property的话有方法,但会比较麻烦,要慎用。

8楼 ·
zhangmeteor 回复于 2013年11月05日

7楼 @nickel 匿名的category是可以的--|

9楼 ·
nickel 回复于 2013年11月05日

8楼,你说的那种category是用在自己定义的类里的,而且通常是写在同一个.m文件里。但一般直接用category扩展别人写好的类是不可以的。

10楼 ·
清醒疯子 回复于 2013年11月05日

7楼 @nickel 《设计模式》瞄过两眼。当时确实一点感觉都没有。摸过的代码太少,描象跟不上:)

以后也玩玩block,先把delegate玩熟:)

在看念茜的博文时,也提到这个,不要加@property :)

本帖有19个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。
登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]

AltStyle によって変換されたページ (->オリジナル) /