OC 与 Swift 区别

一、block = 闭包

OC——block

typedef void(^successBlock)(NSURL* url,id data);

swift——闭包

typealias  successBlock = (NSURL, AnyObject) -> Void;

@escaping 逃逸闭包 :闭包在函数执行完后才被调用,调用的地方超过了这函数的范围,eg:网络请求结束后的回调的闭包,因为发起请求后过了一段时间后这个闭包才执行.

@noescape 非逃逸闭包(默认) : 闭包在这个函数结束前被调用,eg:我们常用的Masonry和Snapkit的添加约束方法,因为这闭包是马上执行的。

二、class

OC——[object isKindOfClass:[NSArray class]]

[object isKindOfClass:[NSDictionary class]]

swift——data is [Any]   //array

data is [String: Any]  //dictionary

data is NSNumber

三、set & get 方法

OC——

- (void)setModel:(SquareLiveListModel *)model {

_model = model;

}

swift——

private和public可去掉

var cName:String {

get {return self.cName}

set (newTitle) {

//如果没有定义 newTitle,可以使用 newValue

self.cName = newTitle

}

}

swift 中我们 不能使用  _model 来表示 OC 中@property 修饰的变量值 。在set&get方法中直接调用 会崩溃,故swift中用一个中间变量newValue来实现功能

四、willSet & didSet

var name: String? {

//在属性name即将被赋值前 执行

willSet {

// newValue —— 待赋 新值, 此时属性name的值还是之前久值

if newValue, newValue != name {

}

}

//在属性name被赋值后执行

didSet {

}

}

五、SEL

OC——  @selector(btnEvent:)

- (void)btnEvent:(UIButton *)sender {

}

swift—— #selector(btnEvent:)

@objc func btnEvent(sender: UIButton) {

}

六、guard

guard self.feed != nil else{

//self.feed==nil则返回0

return 0

}

if语句相同的是,guard也是基于一个表达式的布尔值去判断一段代码是否该被执行。与if语句不同的是,guard只有在条件不满足的时候才会执行这段代码。你可以把guard近似的看做是Assert,但是你可以优雅的退出而非崩溃。

OC——

后续待。。

OC 与 Swift 区别相关推荐

  1. swift 与 oc 有哪些区别

    这里总结了其中一些: swift 不分 .h 和 .m ,只有一个 .swift 文件,文件的数量和后缀与 OC 不同 swift引入了命名空间,从此不用再import其他文件 swift 语言代码语 ...

  2. OC和swift混合工程更新库时报:target has transitive dependencies that include statically linked binaries

    OC和swift混合工程更新库时报:target has transitive dependencies that include statically linked binaries.有时间报的错误 ...

  3. IOS开发之OC-Switf 混编 -(OC 引 Swift 文件)

    上篇文章我们介绍了Swift 怎么引 OC 文件接来我们开始OC 引 Swift  文件. (一)OC 引 Swift  文件 1.创建 Demo ( 这个 Demo 名称一定要记住) 2.创建 Sw ...

  4. 初探swift语言的学习笔记九(OC与Swift混编)

    作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/34440159 转载请注明出处 如果觉得文章对你有所帮助,请通过留言 ...

  5. iOS获取自1970年毫秒数使用OC和swift两种语法,返回字符串

    iOS获取自1970年毫秒数使用OC和swift两种语法,返回字符串 oc的话,我们定义一个category分类,对谁分类,对NSDate分类,对外暴露一个类方法,只要导入头文件,即可使用. @int ...

  6. ios 可以为空声明_iOS开发中使用OC和swift的对比(2)

    OC与swift 1.协议 OC:主要用来传值 swift:不仅可以用来传值,swift中的协议可以定义属性方法,并且其协议可以进行扩展,在扩展中还可以有自己的默认实现,这个特性使其可以面向协议的时候 ...

  7. swift基础之_swift调用OC/OC调用swift

    通过briding_header调用.调用方法如下 用OC调用swift 导入该头文件

  8. IOS --- OC与Swift混编(转)

    原文地址:http://blog.sina.com.cn/s/blog_8d1bc23f0102v5tl.html swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一 ...

  9. OC和Swift混合编程引用Pods管理的模块

    OC和Swift混合编程引用Pods管理的模块 用Pods安装需要使用的模块后,打开.xcworkspace文件,然后按下图所示设置一下User Header Search Paths: swift中 ...

最新文章

  1. Linux下tar解压到当前目录,zip压缩,tar压缩,tar解压
  2. jboss5 启动时报HsqlException:length must be specified in type definition:VARBINARY错误
  3. 跟你聊得这么投缘,你却说自己不是人?!
  4. solaris 10 安装oracle 10g
  5. HTML5 Canvas
  6. go语言map遍历时删除是安全的, 且可以完全删除
  7. 实战SpringMVC+Mybatis搭建高性能安全站点
  8. 转载:实用 FRIDA 进阶 --- objection :内存漫游、hook anywhere、抓包
  9. vsftp 虚拟用户测试
  10. 数据科学入门与实战:玩转pandas之一
  11. php中怎么替换文字,php里面怎么替换文字
  12. 手机腾讯网mt2.0增量更新算法优化小记
  13. Android iso文件打开,安卓手机iso文件用什么打开?
  14. [aminer] 2020清华大学人工智能发展报告pdf
  15. 光耦合器 工作原理 作用 应用场合
  16. 利用FPGA制作数字电压表
  17. 中国航空公司特点机型
  18. OneClock 不息屏的极简时钟,不仅仅是翻页时钟那么简单!
  19. 基于android物流快递服务系统app
  20. 杰理之linein为DAC进使用打断方式播放提示音,一直有linein背景音【篇】

热门文章

  1. 合肥十中高考2021成绩查询,合肥十中2018高考成绩
  2. 合肥工业大学计算机类考研分数线,求合肥工业大学计算机专业的复试分数线是多少...
  3. 乘法运算加法表示,单片机软件乘法运算
  4. PySpark数据分析基础:PySpark基础功能及DataFrame操作基础语法详解
  5. homepod换wifi网络_苹果HomePod音响,怎么更换无线wifi网络?
  6. 华为MPLSVPN与GRE隧道配置练习
  7. python图像识别生成矢量图_使用python制作矢量图
  8. 一周信创舆情观察(6.21~6.27)
  9. js弹出提示信息并自动关闭
  10. 计算机语言发展浅层笔记