swift3的改变
来源:互联网 发布:mac设置下面图标 编辑:程序博客网 时间:2024/06/07 00:12
- tableView sectionHeaderView
- CGPoint,CGRect,CGSize使用
- CGPointZero
swift3中sectionHeaderView要想正常显示必须实现下面两个方法
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { } func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { }
swift3中不能使用结构体方法,
CGRectMake,CGSizeMake,CGPointMake
只能使用构造方法
CGRect(x: ,y: ,width: ,heght:),CGSizeMake(width: , height: ) ,CGPointMake(x: , y:)
swift3中CGPointZero
为CGPoint.zero
4.Any与Anyobject
在swift2中Alamofire中
public typealias Parameters = [String: Anyobject]
为适配swift3
public typealias Parameters = [String: Any]
因此当你调用Alamofire时,传入参数类型为[String: Any]
AnyObject 可以表示任何类类型的实例。
Any 可以表示任何类型,包括函数类型
5.Swift3中观察者的改变
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?)
新值和旧值的取用使用下面的代码
let new = change![NSKeyValueChangeKey.newKey]let old = change![NSKeyValueChangeKey.oldKey]
有一点是值的注意的 Swift3中取出的值的类型要对应正确
比如,swift2中,观察UIButton的highlighted属性时可以使它抛向一个Int类型
let new = change![NSKeyValueChangeKey.newKey] as! Int
swift3中类型必须对应正确才能正确取用(否则程序Crash掉),这样取用
let new = change![NSKeyValueChangeKey.newKey] as! Bool
这是因为UIButton的highlighted属性本事是Bool类型。但是Swift2沿用了OC的值类型,取用时使用C中的值类型true是1,false是0,才造成了在2中抛向的是一个Int型。
关于Swift3的类型问题可以参见这篇文章Swift Anyobject
- swift3.0的改变
- Swift3翻天覆地的改变
- swift3的改变
- Swift3.0中新的改变
- Swift3中方法可变参数语法的一些改变
- Swift3中方法可变参数语法的一些改变
- swift3.0之后改变的语法 二维码定位
- Swift3.0 CoreData Fetch语法的一些改变
- Swift3的playground中对UI直接测试支持的改变
- Swift3的playground中对UI直接测试支持的改变
- iOS-Swift3 监听UITextView文字改变
- Swift3.0 监听UITextView文字改变
- swift3.0 label改变行间距
- swift3.0的变化
- Swift3.0的坑
- Swift3 - 字符串的使用
- swift3 的 selector 改动
- Swift3
- 【扩展】SSM之配置quartz定时器
- public static void main
- Linux运维笔记-文档总结-pxe无人值守安装系统
- js时间戳转ymd
- Eclipse EE+MAVEN配置以及POM.XML的使用
- swift3的改变
- 分享网站到其他社区
- 使用VS2010开发ActiveX(MFC)控件(2)——界面显示
- nginx 简单配置文件说明
- Hbase连接池HTablePool为何弃用
- Leetcode Minimum Depth of Binary Tree
- Spring(01)——bean定义
- 过滤器、监听器、拦截器的区别
- 命令行(cmd)登录oracle数据库