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

原创 2017年01月02日 23:13:31

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

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

(2)block是同样的道理

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


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


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


Swift Object-c 相互调用

我们先看一下Swift调用Object-c 首先我们创建一个OC类 到最后一步的时候发现多了一个确认框,点击Yes 系统会生成一个Swift和OC的转换桥梁。 他的命名规则是 项目...
  • lwjok2007
  • lwjok2007
  • 2015年08月29日 19:20
  • 4249

Object-C与Swift混合开发

Object-C作为Apple的iOS App开发语言服务了许多个年头,2014年Apple推出了新的编程语言Swift,更高效更安全的口号再次吸引了一大批非iOS开发程序员进入,小编认为Swift取...
  • IT_DS
  • IT_DS
  • 2016年03月11日 21:43
  • 1857

Object-C 和 Swift 混编 之一 Object-C 中调用 Swift

1、创建一个Object-C工程:SwiftInObjectC 2、创建一个Object-C的类:SwiftLan(注意选择) 当创建完成后,Xcode提示下面警告,会提问我们需不需要创意一个...
  • jinglijun
  • jinglijun
  • 2015年08月18日 15:27
  • 3090

Swift与Object-C的区别

下面我所写的是swift 和oc不同的地方 oc的相关语法没有详细写1.常量和变量 常量使用 let 变量使用 var 2.输出 pr...
  • yy763496668
  • yy763496668
  • 2016年06月12日 19:14
  • 2766

从Object-C -> Swift3.0

当我们开始接触一门新语言时,我们难免避免不了类型和基本语法规则。我们会急切的想知道如何用新的语法规则写我们原先所熟知的语句。本文旨在对于Object-C和Swift做一些基本的对比。通过阅读本文,您能...
  • rhythmkay
  • rhythmkay
  • 2016年07月28日 21:39
  • 2269

浅谈Swift和Objective-C之间的那点事。。。

Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。...
  • GAVIN_2015
  • GAVIN_2015
  • 2016年04月24日 23:26
  • 5262

《Swift 的界面之间的传值,详细介绍3种传值方式》 正向传值、协议传值、闭包

《Swift 的界面之间的传值,详细介绍3种传值方式》正向传值、协议传值、闭包    1、 控制器界面间的正向传值    /*    《Swift 的界面之间的传值,详...
  • zhoushuangjian511
  • zhoushuangjian511
  • 2015年12月07日 13:07
  • 4357

Swift 与Object C 的比较

1.swift 没有.h文件,也就是头文件 2.swift对于类的声明是使用class关键字而不是interface 3.swift使用var定义变量,默认是不是自动给变量赋初始值的 4.sw...
  • ChSaDiN
  • ChSaDiN
  • 2015年07月14日 10:25
  • 1947

OC、swift混编中的相互跳转和传值

OC、swift混编中的相互跳转和传值
  • c_chang
  • c_chang
  • 2016年10月28日 11:40
  • 1554

Swift实现传值的四种方法

常用的四种传值方法:单例,代理,闭包,通知(一) (例如:从页面a,反向传值(这里是背景颜色backgroundColor)到页面b) 1.单例 1>.创建单例变量 在AppDelegate.s...
  • a736220388
  • a736220388
  • 2016年07月02日 12:03
  • 2286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅析object-c,swift "传值" 原理
举报原因:
原因补充:

(最多只允许输入30个字)