OC 与 Swift 区别
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 区别相关推荐
- swift 与 oc 有哪些区别
这里总结了其中一些: swift 不分 .h 和 .m ,只有一个 .swift 文件,文件的数量和后缀与 OC 不同 swift引入了命名空间,从此不用再import其他文件 swift 语言代码语 ...
- OC和swift混合工程更新库时报:target has transitive dependencies that include statically linked binaries
OC和swift混合工程更新库时报:target has transitive dependencies that include statically linked binaries.有时间报的错误 ...
- IOS开发之OC-Switf 混编 -(OC 引 Swift 文件)
上篇文章我们介绍了Swift 怎么引 OC 文件接来我们开始OC 引 Swift 文件. (一)OC 引 Swift 文件 1.创建 Demo ( 这个 Demo 名称一定要记住) 2.创建 Sw ...
- 初探swift语言的学习笔记九(OC与Swift混编)
作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/34440159 转载请注明出处 如果觉得文章对你有所帮助,请通过留言 ...
- iOS获取自1970年毫秒数使用OC和swift两种语法,返回字符串
iOS获取自1970年毫秒数使用OC和swift两种语法,返回字符串 oc的话,我们定义一个category分类,对谁分类,对NSDate分类,对外暴露一个类方法,只要导入头文件,即可使用. @int ...
- ios 可以为空声明_iOS开发中使用OC和swift的对比(2)
OC与swift 1.协议 OC:主要用来传值 swift:不仅可以用来传值,swift中的协议可以定义属性方法,并且其协议可以进行扩展,在扩展中还可以有自己的默认实现,这个特性使其可以面向协议的时候 ...
- swift基础之_swift调用OC/OC调用swift
通过briding_header调用.调用方法如下 用OC调用swift 导入该头文件
- IOS --- OC与Swift混编(转)
原文地址:http://blog.sina.com.cn/s/blog_8d1bc23f0102v5tl.html swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一 ...
- OC和Swift混合编程引用Pods管理的模块
OC和Swift混合编程引用Pods管理的模块 用Pods安装需要使用的模块后,打开.xcworkspace文件,然后按下图所示设置一下User Header Search Paths: swift中 ...
最新文章
- Linux下tar解压到当前目录,zip压缩,tar压缩,tar解压
- jboss5 启动时报HsqlException:length must be specified in type definition:VARBINARY错误
- 跟你聊得这么投缘,你却说自己不是人?!
- solaris 10 安装oracle 10g
- HTML5 Canvas
- go语言map遍历时删除是安全的, 且可以完全删除
- 实战SpringMVC+Mybatis搭建高性能安全站点
- 转载:实用 FRIDA 进阶 --- objection :内存漫游、hook anywhere、抓包
- vsftp 虚拟用户测试
- 数据科学入门与实战:玩转pandas之一
- php中怎么替换文字,php里面怎么替换文字
- 手机腾讯网mt2.0增量更新算法优化小记
- Android iso文件打开,安卓手机iso文件用什么打开?
- [aminer] 2020清华大学人工智能发展报告pdf
- 光耦合器 工作原理 作用 应用场合
- 利用FPGA制作数字电压表
- 中国航空公司特点机型
- OneClock 不息屏的极简时钟,不仅仅是翻页时钟那么简单!
- 基于android物流快递服务系统app
- 杰理之linein为DAC进使用打断方式播放提示音,一直有linein背景音【篇】
热门文章
- 合肥十中高考2021成绩查询,合肥十中2018高考成绩
- 合肥工业大学计算机类考研分数线,求合肥工业大学计算机专业的复试分数线是多少...
- 乘法运算加法表示,单片机软件乘法运算
- PySpark数据分析基础:PySpark基础功能及DataFrame操作基础语法详解
- homepod换wifi网络_苹果HomePod音响,怎么更换无线wifi网络?
- 华为MPLSVPN与GRE隧道配置练习
- python图像识别生成矢量图_使用python制作矢量图
- 一周信创舆情观察(6.21~6.27)
- js弹出提示信息并自动关闭
- 计算机语言发展浅层笔记