总结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语言教程之下标脚本 下标脚本 下标脚本是访问对象.集合或者序列的快速方式.开发者不需要调用实例特定的赋值和访问方法,就可以直接访问所需要的数值.例如在数组中,可以直接使用下标去访问或者 ...
随机推荐
- Sqli-labs less 36
Less-36 我们直接看到36关的源代码 上面的check_quotes()函数是利用了mysql_real_escape_string()函数进行的过滤. mysql_real_escape_st ...
- linux gcc loudong
五事九思 (大连Linux主机维护) 大连linux维护qq群:287800525 首页 日志 相册 音乐 收藏 博友 关于我 日志 spcark_0.0.3_i386.src.t ...
- 正则表达式(RegExp)
正则表达式(RegExp) 如何按一定规则快速查找到需要找寻的内容,js的设计者们给我们提供了一个叫正则表达式(RegExp对象),专门用于处理类似问题. RegExp对象表示正则表达式,它是对字符串 ...
- UBUNTU 14.04 + CUDA 7.5 + CAFFE
这个也是困扰我很久的问题,之前用 http://www.cnblogs.com/platero/p/3993877.html 的安装方法,装了五六七八九十次,总是出问题. 后来找到了一种新的方法,一个 ...
- java jms
这篇博文我们主要介绍J2EE中的一个重要规范JMS,因为这个规范在企业中的应用十分的广泛,也比较重要,我们主要介绍JMS的基本概念和它的模式,消息的消费以及JMS编程步骤. 基本概念 JMS是java ...
- HTML5文档结构语义:页眉的header和hgroup标签使用
HTML5提供了新的结构元素——例如header.hgroup.article.section.footer.nav等来定义网页,将使网页结构更加简洁严谨,语义更加结构化,而不用迂回通过class或i ...
- 【原创】【Android New Features】—— 关于ADT 17的BuildConfig.DEBUG
在日常开发中,我们使用android.util.Log来打印日志,方便我们的开发调试.但是在打包发布时,需要手工把Log关闭,多少会有些不便,而且不排除打包者忘记关闭Log的情况.那么有没 ...
- 机器人学 —— 机器人感知(Kalman Filter)
对于机器人感知任务而言,经常需要预判物体的运动,保证机器人在物体与自身接触之前进行规避.比如无人机与障碍物的碰撞,足球机器人判断足球的位置.预判的前提是对当前状态进行准确的估计,比如足球的速度,障碍物 ...
- oracle11g OEM无法连接到数据库实例解决办法
我的电脑是32位的win7家庭版系统,那么这样的系统能不能装上oracle呢?能的!就是可能会出错,在装oracle时,每个人遇到的问题都不同,有的人装了双系统,有的人重做了系统,真心酸,先让电脑断网 ...
- 深度学习框架Caffe —— Deep learning in Practice
因工作交接需要, 要将caffe使用方法及整体结构描述清楚. 鉴于也有同学问过我相关内容, 决定在本文中写个简单的tutorial, 方便大家参考. 本文简单的讲几个事情: Caffe能做什么? 为什 ...