总结swi1.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(1, 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()

}

好了,想到的就这些了,其他改变的比较常见,就没有记录了。

时间: 2024-10-04 10:46:00

总结swi1.2适配swift2.0遇到的改变的相关文章

swift2.0 UIImagePickerController 拍照 相册 录像

系统 ios9.1 语言swift2.0 在app 里最常用的功能就是多媒体选择,首先我们storyboard 创建一个button 用于触发选择事件 @IBAction func selectImageAction(sender: AnyObject) { } 这时候通常会弹出来一个ActionSheet 上面有拍照 , 相册,录像 和取消 这几项.iOS 8 以后actionsheet 和 alertview 都统一用UIAlertController 方法调用,8.3以前actionshe

(IOS)Swift2.0 Radio 程序分析

本文主要分享下楼主在学习Swift编程过程中,对GitHub上的一个开源项目Swift Radio的研究心得. 项目地址:https://github.com/swiftcodex/Swift-Radio-Pro 一.界面 在这个项目中一共包含了6个界面控制器,其中包含了5个用于分别显示电台频道(Swift Radio).正在播放(Now Playing View).电台信息(Info View Controller).app信息(Menu View Controller)和app特征及联系邮箱

Swift2.0初见笔记

Swift2.0 1.简单值 1.使用let来声明常量,常量无法改变(相当于const);使用var来声明变量. var myVariable = 42 myVariable = 50 let myConstant = 42 2.常量或者变量的类型必须和你赋给它们的值一样.然而,你不用明确地声明类型,声明的同时赋值的话,编译器会自动推断类型 let implicitInteger = 70 let implicitDouble = 70.0 let explicitDouble: Double

Swift2.0 UITextView 和 UITextFile 的使用

在Swift2.0中,UITextFile 和 UITextView 的使用总体上和在OC中是一样的,今天只是给大家一段代码,然后说UITextView里面的光标位置的问题.先看他们使用的简单的代码 func creatUIciew(){ // textView let textview:UITextView = UITextView(frame: CGRectMake(10, 100, 200, 100)) textview.layer.borderWidth = 1 textview.lay

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

//: Playground - noun: a place where people can play import UIKit // Swift中不需要设置main函数入口,编译器会在全局函数中自动设置程序的入口,在书写Swift代码时,可以不使用";"作为语句的结束标志 var str = "Hello, playground" var str1 = "Hello, LiLe" print("Hello World!")

适配IOS9.0的那些坑!(主要说明ios9.0,64位设备,打开应用闪退的问题)

我平时的主要工作是维护公司的sdk,最近为了适配ios9.0可谓伤透了心.下面给大家分享下我这几天适配ios9.0遇到的一些问题和解决方法 希望能够帮助到大家,如果有错误的地方,还请大家能够多多指教. 首先,遇到比较多的问题,ChenYilong已经在cocoachina中讲得非常详细了,链接: http://www.cocoachina.com/ios/20150703/12392.html 非常感谢他,让我少走了很多弯路. 其次,是我遇到的两个问题,在网上没有找到相应的解释: 一.一些应用在

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

Swift2.0语言教程之下标脚本 下标脚本 下标脚本是訪问对象.集合或者序列的高速方式.开发人员不须要调用实例特定的赋值和訪问方法,就能够直接訪问所须要的数值. 比如在数组中,能够直接使用下标去訪问或者改动数组中的某一个元素. 代码例如以下: import Foundation var array=["One","Two","Three","Four","Five"] print("訪问元素:\

窥探Swift2.0之需要注意的基本运算符和高级运算符

之前更新了一段时间有关Swift语言的博客,连续更新了有6.7篇的样子.期间间更新了一些iOS开发中SQLite.CollectionViewController以及ReactiveCocoa的一些东西.时隔两月,还得继续更新Swift语言的东西不是.在去年翻译<Swift编程入门经典>(Swift1.0版本,基于Xcode6)这本书时,系统的搞了搞Swift语言,接下来的一段时间内打算持续更新一下相关Swift语言的一些东西, 不过现在已经是Swift2.0版本了,区别还是不小的.并且目前在

Swift2.0(5)元组类型&数组类型&字典类型

元组类型 元组Tuple用来归纳多个归纳具有任意类型的相关联的值,如: var person = (30, "neusoft") print(person)     // (30, "neusoft") 该元组类型对象person的类型可以认为是:(Int, String) 如果想要获取元组中的某个数据,可以采用以下方式 方式一:可以将其中的数据关联到常量或变量中,如: let (age, name) = person print("age:\(age)