总结swift 1.2适配swift2.0遇到的改变
swift1.2适配swift2.0
以下列举的是我在项目中遇到的需要修改的,基本常见的问题就没有罗列了。
1.find函数变成了为indexOf
2.sort变成了sortInPlace
3.sorted变成了sort
4.enumerate(self.tableView.visibleCells)修改为self.tableView.visibleCells.enumerate()
5.Printable 变成了CustomStringConvertible
6.DebugPrintable 变成了CustomDebugStringConvertible
7.结构体:GeneratorOf 变成了 AnyGenerator
8.translatesAutoresizingMaskToConstraints = false代替了setTranslatesAutoresizingMaskToConstrains(false)。
9.UITableView的dequeueReusableCellWithIdentifier方法返回值为UITableViewCell?所以不用as UITableViewCell
10.tableView.indexPathsForVisibleRows() 返回值为[AnyObject]修改为tableView.indexPathsForVisibleRows 返回值为 [NSIndexPath]
11.NSDataBase64EncodingOptions.allZeros 替换为NSDataBase64EncodingOptions()
12.error 全数替换成了 throw,使用throw catch 的异常处理机制。如下代码:
使用do try cacth
//mqy
do{
let player = try AVAudioPlayer(contentsOfURL: url!)
player.volume = 0.005
player.prepareToPlay()
player.play()
delay(, task: { () -> () in
player.stop()
}) }catch let error as NSError{
print("error:\(error)")
} // var player = AVAudioPlayer( contentsOfURL: url!, error: nil)
// player.volume = 0.005
// player.prepareToPlay()
// player.play()
// delay(1, task: { () -> () in
// player.stop()
// })
13.tableview的init方法
// override init(frame: CGRect) {
// super.init(frame: frame)
// }
改变为如下:
override init(frame: CGRect, style: UITableViewStyle) {
super.init(frame: frame, style: UITableViewStyle.Plain)
self.setUp()
}
14.指示startUserActivity()方法只在iOS8.0+,OSX10.10+以及以其他平台的全版本可用。
@available(iOS 8.0, OSX 10.10, *)
func startUserActivity() -> NSUserActivity {
}
15. button
let back = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
改变为
let back = UIButton(type: UIButtonType.Custom)
16.enumerate
for (idx,data) in enumerate(self.dataArray){}
改变为
for (idx,data) in self.dataArray.enumerate(){}
17. supportedInterfaceOrientations 函数返回值类型改变
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.All.rawValue)
}
返回值int修改为UIInterfaceOrientationMask:
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.All
}
18.
delay(2, { callback(type: RealtimeService.CallbackType.Connected, room: room, data: "") })
改变为需要task:
delay(2, task: { callback(type: RealtimeService.CallbackType.Connected, room: room, data: "") })
19.
UIColorFromRGBA(0xFFFFFF, 0.2)
改变为:
UIColorFromRGBA(0x000000, alpha: 0.3)
20.使用到|语句的都改变为如下
UIView.transitionWithView(self.likeButton, duration: 1, options: UIViewAnimationOptions.TransitionFlipFromLeft | UIViewAnimationOptions.AllowUserInteraction, animations:
改变为:
UIView.transitionWithView(self.likeButton, duration: 1, options: [UIViewAnimationOptions.TransitionFlipFromLeft , UIViewAnimationOptions.AllowUserInteraction], animations: { () -> Void
21. filter
let numbers = [1, 5, 6, 10, 16, 42, 45]
find(filter(map(numbers, { $0 * 2}), { $0 % 3 == 0 }), 90)
改变为如下
// Swift 2
numbers.map { $0 * 2 }.filter { $0 % 3 == 0 }.indexOf(90)
22.使用@objc 必须是继承自NSObject类型
23.
override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
<#code#>
}
改变为:
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
MBProgressHUD.hideHUDForView(self.view, animated: true)
self.loadProductArray()
self.collectionView.reloadData()
}
好了,想到的就这些了,其他改变的比较常见,就没有记录了。
总结swift 1.2适配swift2.0遇到的改变的更多相关文章
- Swift基础知识入门(基于Swift2.0)
//: Playground - noun: a place where people can play import UIKit // Swift中不需要设置main函数入口,编译器会在全局函数中自 ...
- (IOS)Swift2.0 Radio 程序分析
本文主要分享下楼主在学习Swift编程过程中,对GitHub上的一个开源项目Swift Radio的研究心得. 项目地址:https://github.com/swiftcodex/Swift-Rad ...
- [Swift2.0系列]Defer/Guard 基础语法
1.Defer Swift2.0中加入了defer新语法声明.defer译为延缓.推迟之意.那么在Swift2.0中它将被应用于什么位置呢?比如,读取某目录下的文件内容并处理数据,你需要首先定位到文件 ...
- Swift2.0 中的String(三):类型转换
本系列第三篇,String相关的类型转换.其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P): Swift2.0 中的String(一 ...
- Swift2.0 中的String(二):基本操作
Swift中的字符串,第二篇,基本操作.其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P): Swift2.0 中的String(一) ...
- swift2.0 UIImagePickerController 拍照 相册 录像
系统 ios9.1 语言swift2.0 在app 里最常用的功能就是多媒体选择,首先我们storyboard 创建一个button 用于触发选择事件 @IBAction func selectIma ...
- Swift2.0语言教程之函数嵌套调用形式
Swift2.0语言教程之函数嵌套调用形式 Swift2.0语言函数嵌套调用形式 在Swift中,在函数中还能够调用函数,从而形成嵌套调用.嵌套调用的形式往往有两种:一种是在一个函数中调用其它函数:还 ...
- Swift2.0语言教程之类的嵌套与可选链接
Swift2.0语言教程之类的嵌套与可选链接 Swift2.0语言类的嵌套 在一个类中可以嵌套一个或者多个类.它们的嵌套形式也是不同的,大致分为了两种:直接嵌套和多次嵌套.下面依次讲解这两种方式. S ...
- Swift2.0语言教程之下标脚本
Swift2.0语言教程之下标脚本 下标脚本 下标脚本是访问对象.集合或者序列的快速方式.开发者不需要调用实例特定的赋值和访问方法,就可以直接访问所需要的数值.例如在数组中,可以直接使用下标去访问或者 ...
随机推荐
- ListView的item选中效果
有时app会需要点击某个item并实现选中的效果,例如做pad时用Fragment实现的左侧列表右侧内容的效果,点击左侧某一个item后会高亮选中 有时简单的使用setSelected(boolean ...
- 深入浅出ES6(十三):类 Class
作者 Jason Orendorff github主页 https://github.com/jorendorff 你可能觉得之前讲解的内容略显复杂,今天我们就讲解一些相对简单的内容,不再是生成器 ...
- 安装DirectX SDK (June 2010) 失败(Error Code S1023)(转)
解决: 在控制面板里面搜索“Microsoft Visual C++*”,然后卸载,这个工具的名字大概是: Microsoft Visual C++ 2010 x86/x64 redistribuab ...
- CSS3做小三角形
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXgAAAA2CAIAAABC2hVZAAAgAElEQVR4nKzcd3cbV57web+1p20FW8
- volatile小记
1.要使volatile变量提供理想的线程安全,必须同时满足以下两个条件: 1).对变量的写操作不依赖于当前值: 2).该变量没有包含在具有其他变量的不变式中. 第一个条件的限制使volatile变量 ...
- a cold welcome
What does 'a cold welcome' refer to? On wednesday evening,we went to the town hall. It was the last ...
- unity HideInInspector 默认值 坑 记录 bug
1: 如果 一个public字段 刚开始有默认值,然后你你觉得这个值不应该给别人看设置为HideInInspector 后,你再在代码里面调整这个默认属性的值,这个时候代码里面调整的值无效. ...
- java中静态代理跟动态代理之间的区别
文章转载于:http://www.cnblogs.com/xiaoluo501395377/p/3383130.html 在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另 ...
- Android init.rc解析【转】
转自:http://www.linuxidc.com/Linux/2014-10/108438.htm 本文主要来自$Android_SOURCE/system/init/readme.txt的翻译. ...
- J2EE开发之常用开源项目介绍
主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库 1持久层: 1)Hibe ...