Swift3新增特性(一)

2021-07-29 20:40:05 字數 2197 閱讀 7601

swift3

不僅移除了swift2中的部分特性,同時也增加了自己的新特性

1

. 內聯序列函式

sequence

swift 3新增了兩個全域性函式

sequence(first: next:)sequence(state: next:)

使用它們可

以返回乙個無限序列

。下面是乙個簡單的使用樣例

// 從某乙個樹節點一直向上遍歷到根節點

fornode in

sequence(first: leaf, next: )

// 遍歷出所有的2的

n次方數(不考慮溢位)

forvalue in

sequence(first: 1, next: )

2

.key-path

不再只能使用

string

這個是用在鍵值編碼

kvc

與鍵值觀察

kvo

上的我們還是可以繼續使用

string型別的

key-path

//使用者類

class

user: nsobject

//建立乙個

user

例項物件

letuser1 = user()

user1.name = "hangge"

user1.age = 100

//使用

kvc取值

letname = user1.value(forkey: "name")

print(name)

//使用

kvc賦值

user1.setvalue("hangge.com", forkey: "name")

但建議使用新增的

#keypath()寫法

,這樣可以避免我們因為拼寫錯誤而引發問題

。//使用

kvc取值

let name = user1.value(forkeypath: #keypath(user.name))

print(name)

//使用

kvc賦值

user1.setvalue("hangge.com", forkeypath: #keypath(user.name))

3.

foundation 

去掉ns 

字首比如過去我們使用

foundation

相關類來對檔案中的

json資料進行解析

,這麼寫

:let

file = nsbundle.mainbundle().pathforresource("tutorials", oftype: "json")

leturl = nsurl(fileurlwithpath: file!)

letdata = nsdata(contentsofurl: url)

letjson = try! nsjsonserialization.jsonobjectwithdata(data!, options: )

print(json) 在

swift 3中,

將移除ns字首

,就變成了

:let

file = bundle.main.path(forresource: "tutorials", oftype: "json")

leturl = url(fileurlwithpath: file!)

letdata = try! data(contentsof: url)

letjson = try! jsonserialization.jsonobject(with: data)

print(json)

Swift3廢除特性(一)

正式版的swift 3.0將隨著ios 10和macos sierra正式版在去年 2016年 秋季推出,但由 於swift開源的特性,使得我們能夠看到swift的開發進展。swift3.1已於今年春季退出,swift4.0將於今年秋季推出。先來回顧一下swift 3廢除的一些特性 1.棄用 與 操...

Swift3之函式(一)

學習步驟 函式概述 常量引數,變數引數,i o 引數 1.函式 常量引數 2.函式 變數引數 swift3.0已廢棄 3.函式 i o 引數 引數個數的從0到多 1.函式 不帶引數 2.函式 帶引數 3.可變引數 返回值個數的從0到多 1.沒有返回值函式 2.乙個返回值 3.多個返回值 元組 一.先...

Swift3建立陣列

陣列是由一組型別相同的元素構成的有序資料集合。陣列中的集合元素是有 序的,而且可以重複出現。在swift語言中,陣列的型別格式為 array或 elementtype 其中array中的elementtype表示陣列的型別,是泛型寫法。elementtype 是一種簡寫方式。兩者表示的功能是一樣的,...