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 是一種簡寫方式。兩者表示的功能是一樣的,...