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遇到的改变的更多相关文章

  1. Swift基础知识入门(基于Swift2.0)

    //: Playground - noun: a place where people can play import UIKit // Swift中不需要设置main函数入口,编译器会在全局函数中自 ...

  2. (IOS)Swift2.0 Radio 程序分析

    本文主要分享下楼主在学习Swift编程过程中,对GitHub上的一个开源项目Swift Radio的研究心得. 项目地址:https://github.com/swiftcodex/Swift-Rad ...

  3. [Swift2.0系列]Defer/Guard 基础语法

    1.Defer Swift2.0中加入了defer新语法声明.defer译为延缓.推迟之意.那么在Swift2.0中它将被应用于什么位置呢?比如,读取某目录下的文件内容并处理数据,你需要首先定位到文件 ...

  4. Swift2.0 中的String(三):类型转换

    本系列第三篇,String相关的类型转换.其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P): Swift2.0 中的String(一 ...

  5. Swift2.0 中的String(二):基本操作

    Swift中的字符串,第二篇,基本操作.其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P): Swift2.0 中的String(一) ...

  6. swift2.0 UIImagePickerController 拍照 相册 录像

    系统 ios9.1 语言swift2.0 在app 里最常用的功能就是多媒体选择,首先我们storyboard 创建一个button 用于触发选择事件 @IBAction func selectIma ...

  7. Swift2.0语言教程之函数嵌套调用形式

    Swift2.0语言教程之函数嵌套调用形式 Swift2.0语言函数嵌套调用形式 在Swift中,在函数中还能够调用函数,从而形成嵌套调用.嵌套调用的形式往往有两种:一种是在一个函数中调用其它函数:还 ...

  8. Swift2.0语言教程之类的嵌套与可选链接

    Swift2.0语言教程之类的嵌套与可选链接 Swift2.0语言类的嵌套 在一个类中可以嵌套一个或者多个类.它们的嵌套形式也是不同的,大致分为了两种:直接嵌套和多次嵌套.下面依次讲解这两种方式. S ...

  9. Swift2.0语言教程之下标脚本

    Swift2.0语言教程之下标脚本 下标脚本 下标脚本是访问对象.集合或者序列的快速方式.开发者不需要调用实例特定的赋值和访问方法,就可以直接访问所需要的数值.例如在数组中,可以直接使用下标去访问或者 ...

随机推荐

  1. LCT小结

    LCT真是灵活好用… LCT的基本思想与树链剖分差不多,都是把树剖成一条条链,只不过LCT用的是SPLAY维护的,而且,SPLAY的链是会变化的,不像剖分是定死的. LCT最重要的操作就是access ...

  2. React Native 简介:用 JavaScript 搭建 iOS 应用 (1)

    [编者按]本篇文章的作者是 Joyce Echessa--渥合数位服务创办人,毕业于台湾大学,近年来专注于协助客户进行 App 软体以及网站开发.本篇文章中,作者介绍通过 React Native 框 ...

  3. https://google-developers.appspot.com/chart/

    https://google-developers.appspot.com/chart/

  4. awk处理之案例三:awk去掉不需要的文本行

    编译环境 本系列文章所提供的算法均在以下环境下编译通过. [脚本编译环境]Federa 8,linux 2.6.35.6-45.fc14.i686 [处理器] Intel(R) Core(TM)2 Q ...

  5. PHP开发入行真功夫 三扬科技

    前言与目录 PHP开发入行真功夫 前言 PHP开发入行真功夫 目录   第2章 基本语法 2.1.1 判断闰年程序 2.1.2 我们现在能做的…… 2.2.1 PHP的语言概貌 2.2.2 为我们的程 ...

  6. 开源DBCP、C3P0、Proxool 、 BoneCP连接池的比较

    简介 项目主页 使用评价  DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 http://homepages.nild ...

  7. [你必须知道的.NET]第三十一回,深入.NET 4.0之,从“新”展望

    发布日期:2009.05.22 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. /// <summary> /// 本文开始,将以& ...

  8. 如何理解 MySQL 中的 <=> 操作符?

    问题 : 我在看以前的一个开发者的代码时看到 WHERE p.name <=> NULL 在这个查询语句中 <=>符号是什么意思啊?是不是和 =号是一样啊?还是一个语法错误啊? ...

  9. MongoDB (四) MongoDB 数据模型

    在 MongoDB 中的数据有灵活的模式.在相同集合中文档并不需要有相同的一组字段或结构的公共字段的集合,文档可容纳不同类型的数据. MongoDB设计模式的一些考虑 可根据用户要求设计架构. 合并对 ...

  10. mq_setattr

    NAME mq_setattr - 设置消息队列的属性(REALTIME) SYNOPSIS #include <mqueue.h> int mq_setattr(mqd_t mqdes, ...