1
godwarlock 2012-03-08 10:28:22 +08:00
隐喻的我有点儿晕
其实就是一个用来设置回调对象的属性 |
2
myrual OP @godwarlock 你说的没错,就是一个设置回调对象的属性。
但是对于一个没用过mvc编程模式的人来说有点不容易习惯,我大部分时候是c语言程序员,编程的思维模式一直是控制所有的东西,而不是那种被别人控制的反向编程模式。 其实我很想问一个问题,当在xcode里面按住ctrl把 controller连上view的时候,是不是就是xcode替我把view的delegate属性改成了controller那个类呢? |
4
godwarlock 2012-03-08 18:03:22 +08:00
|
5
myrual OP @godwarlock 刚刚搜索了一下xib git,似乎xib用gitmerge是有一定困难的,似乎没法保证上下文的顺序?
http://stackoverflow.com/questions/5435543/git-xibs-merging |
6
stranbird 2012-03-08 22:23:32 +08:00
为何不用代码来解释?
class A attr_access :delegate def onClick delegate.onClick end end class B def onClick puts "I'm inside B" end end a = A.new b = B.new a.delegate = b a.onClick # => "I'm inside B" 这个就是delegate的全景了。 |
7
myrual OP @stranbird 我还在让自己适应这种设计模式的过程中,虽然明白原理,但是我需要的是那种thinking in objective c and cocoa的感觉,所以想写一些东西来强化一下记忆和理解,也正好找人讨论一下。试图通过这个过程,建立一个相对正确的ios开发逻辑。这样我可以在对某些方面不了解的情况下可以少犯错误。
我觉得虽然说ios开发模式是mvc,但是其实是程序员请求ios展示一个view,然后通过实现view声明的delegate来做很多事情。 view活跃的那段时间其实是ios来控制的,不是程序员。 那么程序员是处于一个被动的地位,ios处于主动地位。不知道这个理解对不对。 另外ruby的程序确实很好懂。 |
8
laihj 2012-03-08 23:12:00 +08:00
我觉得delegate本身比楼主的比喻好懂
|
10
godwarlock 2012-03-09 00:42:12 +08:00
@myrual 项目中的话项目文件和xib都会比较麻烦,项目文件就一个还好说,xib真的要是几个人改起来,感觉merge应该是个很折腾的事情,而且感觉xib对于代码的重复利用也没什么好处
|
11
stranbird 2012-03-09 05:05:44 +08:00
@godwarlock 可以写xib模版,用loadNib载入,这样就可以复用了。
|