zhangke_zhangke的专栏

成功的渴望与生俱来---- 成功是获得赞美与尊重的最有效的途径

浅析object-c,swift "传值" 原理

1.object-c 的 代理protocol,以及block能传值的深层次的原因是:它们的申明和实现可以在两个不同的类进行,所以这就符合在不同的类中传值的要求。

(1)协议的拥有者,可以创建协议实例,也就是协议执行者比如tabeview.delegate = self; self为协议的执行者 ,tableview为协议的拥有者。协议方法在协议中申明而在协议拥有者中被协议执行者调用,协议方法在协议执行者众实现.

(2)block是同样的道理

2.那么swift中的代理和闭包能传值的深层次原因也是:它们的申明和实现可以在两个不同的类进行,所以这就符合在不同的类中传值的要求。


其实闭包以及block是函数的变体一样。


那么可以推断不管任何语言,在2个代码文件(class)中的传值,其实都是函数(闭包--swift?block--oc?钩子--c++?)的申明和实现可以放在不同class中。


阅读更多
个人分类: iOS
上一篇swift 可选类型详解 (optionals)
下一篇PhotoShop,Web前端 文字间距 与像素之间的关系
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭