亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Swift教程之集合類型詳解

 更新時間:2015年01月12日 11:44:38   投稿:junjie  
這篇文章主要介紹了Swift教程之集合類型詳解,Swift 提供兩種集合類型來存儲集合,數(shù)組和字典,本文詳細講解了數(shù)組的創(chuàng)建、讀取和修改數(shù)組、遍歷數(shù)組以及集合的操作等內(nèi)容,需要的朋友可以參考下

Swift 提供兩種集合類型來存儲集合,數(shù)組和字典。數(shù)組是一個同類型的序列化列表集合。字典是一個能夠使用類似于鍵的唯一標識符來獲取值的非序列化集合。

在Swift中,數(shù)組和字典的鍵和值都必須明確它的類型。這意味這數(shù)組和字典不會插入一個錯誤的類型的值,以致于出錯。這也意味著當你在數(shù)組和字典中取回數(shù)值的時候能夠確定它的類型。
Swift 使用確定的集合類型可以保證代碼工作是不會出錯,和讓你在開發(fā)階段就能更早的捕獲錯誤。
note:
Swift的數(shù)組 儲存不同的類型會展示出不同的行為,例如變量,常量或者 函數(shù)和方法。更多的信息參見Mutability of Collections and Assignment 和 Copy Behavior for Collection Types.

1、數(shù)組

數(shù)組是儲存同類型不同值的序列化列表。同樣的值可以在數(shù)組的不同位置出現(xiàn)多次。

Swift數(shù)組是儲存確定的值,這個Objective-C中的NSArray和NSMutableArray類是有區(qū)別的。因為它們是儲存各種的對象,而且并不提供返回任何有關(guān)對象的具體信息。在Swift中,無論是確定的聲明,還是隱式的聲明,數(shù)組是非常確定它自身是儲存什么樣的類型,而且,它并不一定要求儲存的是類對象。所以Swift數(shù)組是類型安全的,因為它一直都確定它自身所能包含的值。

數(shù)組的簡略語法

定義數(shù)組的完整寫法是Array<SomeType>。其中SomeType是你想要包含的類型。你也可以使用類似于SomeType[]這樣的簡略語法。雖然這兩種方法在功能上是相同的。但是我們更推薦后者,而且它會一直貫穿于本書。

數(shù)組實量(Array Literals)

你可以用一個數(shù)組實量(Array Literals)來初始化一個數(shù)組,它是用簡略寫法來創(chuàng)建一個包含一個或多個的值的數(shù)組。一個數(shù)組實量(Array Literals)是由它包含的值,“,”分隔符 已經(jīng)包括以上內(nèi)容的中括號對“[]”組成:

復(fù)制代碼 代碼如下:

[value 1, value 2, value 3]

下面的例子創(chuàng)建一個叫shoppinglist,儲存字符串(String)類型的數(shù)組。

復(fù)制代碼 代碼如下:
 
var shoppingList: String[] = ["Eggs", "Milk"]
// 使用兩個初始化參數(shù)來初始化shoppingList

shoppinglist變量被定義為字符串(String)類型的數(shù)組,寫作String[]。因為這個數(shù)組被確定為字符串類型(String),所以它只能儲存字符串(String)類型的值。在這里,用兩個字符串類型的值(”Eggs” and “Milk”)和數(shù)組實量(Array Literals)的寫法來初始化shoppingList數(shù)組。

注意

shoppingList數(shù)組是被定義為一個變量(使用var 標識符)而不是常量(使用let 標識符),所以在下面的例子可以直接添加元素。

在這個例子中,數(shù)組實量(Array Literals)只包含兩個字符串類型的值,這符合了shoppingList變量的定義(只能包含字符串(String)類型的數(shù)組),所以被分配的數(shù)組實量(Array Literals)被允許用兩個字符串類型的值來初始化。

得益于Swift的類型推斷,當你用相同類型的值來初始化時,你可以不寫明類型。初始化shoppingList可以用下面這個方法來代替。

復(fù)制代碼 代碼如下:
 
var shoppingList = ["Eggs", “Milk"]

因為數(shù)組實量(Array Literals)中所有的值都是同類型的,所以Swift能夠推斷shoppingList的類型為字符串數(shù)組(String[])。

讀取和修改數(shù)組

你可以通過方法和屬性,或者下標來讀取和修改數(shù)組。

通過只讀屬性count來讀取數(shù)組的長度;

復(fù)制代碼 代碼如下:

println("The shopping list contains \(shoppingList.count) items.")
// prints "The shopping list contains 2 items.”

通過一個返回布爾類型的isEmpty屬性檢查數(shù)組的長度是否為0

復(fù)制代碼 代碼如下:
 
if shoppingList.isEmpty {     println("The shopping list is empty.")
} else {     println("The shopping list is not empty.")
}
// prints "The shopping list is not empty."

在數(shù)組末尾增加一個元素可以通過append方法

復(fù)制代碼 代碼如下:

shoppingList.append("Flour")
// shoppingList 現(xiàn)在包含3個元素

甚至,還可以用(+=)操作符來把一個元素添加到數(shù)組末尾

復(fù)制代碼 代碼如下:
 
shoppingList += "Baking Powder"
// shoppingList 現(xiàn)在包含4個元素

你也可以用(+=)操作符來把一個數(shù)組添加到另一個數(shù)組的末尾

復(fù)制代碼 代碼如下:
 
shoppingList += ["Chocolate Spread", "Cheese", "Butter"]
// shoppingList 現(xiàn)在包含7個元素

從數(shù)組中取出一個值可以使用下標語法。如果你知道一個元素的索引值,你可以數(shù)組名后面的中括號中填寫索引值來獲取這個元素

復(fù)制代碼 代碼如下:
 
var firstItem = shoppingList[0]
// firstItem 等于 “Eggs"

注意,數(shù)組的第一個元素的索引值為0,不為1,Swift的數(shù)組總是索引0;

你可以使用下標語法通過索引修改已經(jīng)存在的值。

復(fù)制代碼 代碼如下:

shoppingList[0] = "Six eggs"
//列表中的第一個值等于"Six eggs" 而不等于 “Eggs"

你可以使用下標語法一次性改變一系列的值,盡管修改的區(qū)域遠遠大于要修改的值。在下面的雷子中, 替換掉 “Chocolate Spread”, “Cheese”,”Butter”,”Bananas”,”Apples”:

復(fù)制代碼 代碼如下:

shoppingList[4...6] = ["Bananas", "Apples"]
// shoppingList 現(xiàn)在包含6個元素

注意,你不能使用下標語法在數(shù)組中添加一個元素,如果你嘗試使用下標語法來獲取或者設(shè)置一個元素,你將得到一個運行時的錯誤。盡管如此,你可以通過count屬性驗證索引是否正確再使用它。當count為0時(意味著數(shù)組為空),則count-1超出了索引的有效范圍,因為數(shù)組的索引總是從0開始。

在一個特定的索引位置插入一個值,可以使用insert(atIndex:)方法

復(fù)制代碼 代碼如下:
 
shoppingList.insert("Maple Syrup", atIndex: 0)
// shoppingList 現(xiàn)在包含7個元素
// "Maple Syrup" 在數(shù)組的第一位

這里調(diào)用insert方法指明在shoppingList的索引為0的位置中插入一個新元素 “Maple Syrup”

同理,你可以調(diào)用removeAtIndex方法移除特定的元素。這個方法移除特定索引位置的元素,已經(jīng)返回這個被移除的元素(盡管你并不關(guān)心這個返回值)。

復(fù)制代碼 代碼如下:
 
let mapleSyrup = shoppingList.removeAtIndex(0)
// 索引位置為0的元素被移除
// shoppingList 現(xiàn)在包含6個元素, 不包括 Maple Syrup
// mapleSyrup 常量等于被移除的 "Maple Syrup" 字符串

當元素被移除的,數(shù)組空缺的位置將會被填補,所以現(xiàn)在索引位置為0的元素再一次等于”Six eggs”:

復(fù)制代碼 代碼如下:
 
firstItem = shoppingList[0]
// firstItem 現(xiàn)在等于 "Six eggs”

如果你從數(shù)組中移除最后一個元素,使用removeLast方法比removeAtIndex更方便,因為后者需要通過count屬性計算數(shù)組的長度。和removeAtIndex方法一樣,removeLast會返回被移除的元素。
復(fù)制代碼 代碼如下:
 
let apples = shoppingList.removeLast()
//元素的最后一個元素被移除
// shoppingList 現(xiàn)在包含5個元素,不包括 cheese
// apples 常量 現(xiàn)在等于被移除的 "Apples" string

遍歷數(shù)組

可以使用for-in循環(huán)來遍歷數(shù)組中的值

復(fù)制代碼 代碼如下:
 
for item in shoppingList {     println(item)
}
// Six eggs
// Milk
// Flour
// Baking Powder
// Bananas

如果需要每一個元素的整形的索引值,使用enumerate函數(shù)代替會更方便,enumerate函數(shù)對于每一個元素都會返回一個包含元素的索引和值的元組(tuple)。你可以在遍歷部分分解元祖并儲存在臨時變量或者常量中。

復(fù)制代碼 代碼如下:
 
for (index, value) in enumerate(shoppingList) {     println("Item \(index + 1): \(value)")
}
// 元素 1: Six eggs
// 元素 2: Milk
// 元素 3: Flour
// 元素 4: Baking Powder
// 元素 5: Bananas

如需更多for-in 循環(huán)信息, 參見 For Loops.

創(chuàng)建和初始化數(shù)組
創(chuàng)建一個空的數(shù)組和確定的類型(不包含初始化值)使用的初始化語法:

復(fù)制代碼 代碼如下:

var someInts = Int[]()
println("someInts is of type Int[] with \(someInts.count) items.")
// prints "someInts is of type Int[] with 0 items.”

注意,someInt變量被確定為Int[],因為它使用生成Int[]的初始化方法。

或者,如果上下文(context)已經(jīng)提供類型信息,例如函數(shù)參數(shù)或者已經(jīng)確定類型的常量和變量,你可以從空的數(shù)組實量(Array Literals)創(chuàng)建一個空數(shù)組,寫作[](空的中括號對)。

復(fù)制代碼 代碼如下:
 
someInts.append(3)
// someInts 現(xiàn)在包含1個Int型的元素
someInts = []
// someInts 現(xiàn)在是一個空的數(shù)組, 但是類型仍然為Int[];

Swift數(shù)組類型也提供初始化方法來創(chuàng)建確定長度和提供默認數(shù)值的數(shù)組。你可以通過這個初始化方法增加一個新的數(shù)組,元素的數(shù)量成為count,合適的默認值為repeatedValue

復(fù)制代碼 代碼如下:
 
var threeDoubles = Double[](count: 3, repeatedValue: 0.0)
// threeDoubles 的類型為 Double[], 以及等于 [0.0, 0.0, 0.0]

得益于類型推斷,你并不需要指明這個數(shù)組儲存的類型就能使用這個初始化方法,因為它從默認值中就能推斷出來。

復(fù)制代碼 代碼如下:

var anotherThreeDoubles = Array(count: 3, repeatedValue: 2.5)
// anotherThreeDoubles 被推斷為 Double[], 以及等于 [2.5, 2.5, 2.5]

最后,你可以使用(+)操作符就能創(chuàng)建一個新的數(shù)組,把兩個存在的數(shù)組添加進來
這個新的數(shù)組類型從你添加的兩個數(shù)組中推斷出來

復(fù)制代碼 代碼如下:

var sixDoubles = threeDoubles + anotherThreeDoubles
// sixDoubles 被推斷為 Double[], 并等于 [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]

2、字典

字典是儲存同一類型但是不同值的容器。每一個值都對應(yīng)這一個唯一的鍵(Key),就像是字典內(nèi)的每一個值都有一個標識符。和數(shù)組內(nèi)的元素是有區(qū)別的,字典內(nèi)的元素是沒有特殊的序列的。當你需要根據(jù)標識符來查找批量的值時,就可以使用字典。同樣的,真實的物品字典常常用來當作查找特定字典的標識符。

Swift字典時儲存一個類型的具體的鍵和值,和Objective-C的NSDictionary 和NSMutableDictionary由一定的區(qū)別,因為它們是使用各種的對象來作為它們的鍵和值,而且并不提供任何有關(guān)對象的具體信息。在Swift中,對于一個特定的字典,它所能儲存的鍵和值都是確定的,無論是明確聲明的類型還是隱式推斷的類型。

Swift的字典寫法是Dictionary<KeyType,ValueType>,KeyType是你想要儲存的鍵,ValueType是你想要儲存的值。

唯一的限制就是KeyType必須是可哈希的(hashable)——就是提供一個形式讓它們自身是獨立識別的。Swift的所有基礎(chǔ)類型(例如字符串(String),整形(Int),雙精度(Double)和布爾(Bool))在默認是可哈希的(hashable),和這些類型都常常用語當作字典的鍵。枚舉成員值不需要協(xié)助值(associated values)(具體描述在 Enumerations)也是因為它們默認也是可哈希的(hashable)。

字典實量(Dictionary Literals)

你可以直接用一個字典實量(Dictionary Literals)初始化一個字典。和前面定義一個數(shù)組實量(Array Literals)的語法一樣。字典實量(Dictionary Literals)就是使用簡略寫法直接寫一個或者多個的鍵值對來定義一個字典。

一個鍵值對是一個鍵和值的組合。在字典實量(Dictionary Literals)里面,每一個鍵值對總是用一個冒號把鍵和值分割。鍵值對的寫法就想是一個列表,使用逗號分割,并被一對中括號[]包含著:

復(fù)制代碼 代碼如下:

[key 1: value 1, key 2: value 2, key 3: value 3]

在下面的例子,將會創(chuàng)建一個字典來儲存國際機場的名字。在這個字典里面,鍵是三個字的國際航空運送協(xié)會代碼,以及它的值是機場的名稱:

復(fù)制代碼 代碼如下:
 
var airport :Dictionary<String, String> = ["TYO": "Tokyo", "DUB": “Dublin"]

airport字典被定義為一個類型為Dictionary<String, String>,這意味這,這個字典的鍵類型是字符串String,和它的值的類型也是String。

注意

airport字典是被定義為一個變量(使用var 標識符)而不是常量(使用let 標識符),所以在下面的例子可以直接添加元素。

airport字典使用一個包含兩個鍵值對的字典實量(Dictionary Literals)來初始化。第一對由一個叫“TYO”的鍵和一個叫“Tokyo”的值,第二對有一個叫“DUB”的鍵和一個叫“Dublin”的值。

這個字典實量(Dictionary Literals)包含兩個字符串(String):字符串對。這符合airport變量定義的類型(一個字典只包括字符串(String)鍵和字符串(String)值),所以在分配字典實量(Dictionary Literals)的時候被允許作為airport字典的兩個初始化元素。

和數(shù)組一樣,如果你初始化一個字典的時候使用相同的類型,你可以不指明字典的類型。
airport初始化可以用下面這個簡略寫法來代替:

復(fù)制代碼 代碼如下:

var airports = ["TYO": "Tokyo", "DUB": “Dublin”]

因為所有的鍵在字面上都是相同的類型,同樣,所有的值也是同樣的類型,所以Swift可以推斷為Dictionary<String, String>是airports字典的正確類型。

讀取和修改字典

你可以通過屬性,方法或者下標來讀取和修改字典。和數(shù)組一樣,你使用只讀的count屬性來檢查字典(Dictionary)包含多少個元素。

復(fù)制代碼 代碼如下:
 
 println("The dictionary of airports contains \(airports.count) items.")
// prints "The dictionary of airports contains 2 items."

你可以使用下標語法給一個字典添加一個元素。使用合適類型作為新的鍵,并分配給它一個合適的值

復(fù)制代碼 代碼如下:
 
 airports["LHR"] = "London"
//  airports dictionary 現(xiàn)在有 3 items

你也可以使用下標語法去改變一個特定鍵所關(guān)聯(lián)的值。

復(fù)制代碼 代碼如下:
 
airports["LHR"] = "London Heathrow"
//"LHR" 的值已經(jīng)被改變?yōu)?"London Heathrow"

同樣, 使用字典的updateValue(forKey:) 方法去設(shè)置或者更新一個特定鍵的值 . 和上面的下標例子一樣, updateValue(forKey:) 方法如果鍵不存在則會設(shè)置它的值,如果鍵存在則會更新它的值, 和下標不一樣是, updateValue(forKey:) 方法 如果更新時,會返回原來舊的值rThis enables you to 可以使用這個來判斷是否發(fā)生了更新。

復(fù)制代碼 代碼如下:

updateValue(forKey:) 方法返回一個和字典的值相同類型的可選值. 例如,如果字典的值的類型時String,則會返回String? 或者叫“可選String“,這個可選值包含一個如果值發(fā)生更新的舊值和如果值不存在的nil值。       
if let oldValue = airports.updateValue("Dublin International", forKey: "DUB") {
println("The old value for DUB was \(oldValue).")
}
// prints "The old value for DUB was Dublin."

你也可以使用下標語法通過特定的鍵去讀取一個值。因為如果他的值不存在的時候,可以返回他的鍵,字典的下標語法會返回一個字典的值的類型的可選值。如果字典中的鍵包含對應(yīng)的值,這字典下標語法會返回這個鍵所對應(yīng)的值,否則返回nil

復(fù)制代碼 代碼如下:
 
 if let airportName = airports["DUB"] {
 println("The name of the airport is \(airportName).")
 } else {
println("That airport is not in the airports dictionary.")
 }
// prints "The name of the airport is Dublin International."

你可以使用下標語法把他的值分配為nil,來移除這個鍵值對。

復(fù)制代碼 代碼如下:
 
airports["APL"] = "Apple International"
// "Apple International" 不是 APL的真實機場,所以刪除它
airports["APL"] = nil
// APL 已經(jīng)從字典中被移除

同樣,從一個字典中移除一個鍵值對可以使用removeValueForKey方法,這個方法如果存在鍵所對應(yīng)的值,則移除一個鍵值對,并返回被移除的值,否則返回nil。

復(fù)制代碼 代碼如下:

if let removedValue = airports.removeValueForKey("DUB") {
println("The removed airport's name is \(removedValue).")
} else {
println("The airports dictionary does not contain a value for DUB.")
}
// prints "The removed airport's name is Dublin International."

遍歷字典

你可以使用一個for-in循環(huán)來遍歷字典的鍵值對。字典中的每一個元素都會返回一個元祖(tuple),你可以在循環(huán)部分分解這個元祖,并用臨時變量或者常量來儲存它。

復(fù)制代碼 代碼如下:
 
for (airportCode, airportName) in airports {
println("\(airportCode): \(airportName)")
}
// TYO: Tokyo
// LHR: London Heathrow

更多有關(guān)for-in 循環(huán)的信息, 參見 For Loops.
你也可以讀取字典的keys屬性或者values屬性來遍歷這個字典的鍵或值的集合。

復(fù)制代碼 代碼如下:
 
for airportCode in airports.keys {
println("Airport code: \(airportCode)")
}
// Airport code: TYO
// Airport code: LHR
for airportName in airports.values {
println("Airport name: \(airportName)")
}
// Airport name: Tokyo
// Airport name: London Heathrow

如果你需要一個接口來創(chuàng)建一個字典的鍵或者值的數(shù)組實例,你可以使用keys或者values屬性來初始化一個數(shù)值。

復(fù)制代碼 代碼如下:
 
let airportCodes = Array(airports.keys)
// airportCodes is ["TYO", "LHR"]
let airportNames = Array(airports.values)
// airportNames is ["Tokyo", "London Heathrow"]

注意

Swift中的字典類型是非序列化集合,如果你需要序列化取回鍵,值,或者鍵值對,遍歷字典不具體敘述。

創(chuàng)建一個空字典

和字典一樣,你可以使用確定類型的語法創(chuàng)建一個空的字典。

復(fù)制代碼 代碼如下:

var namesOfIntegers = Dictionary<Int, String>()
// namesOfIntegers 是一個空的 Dictionary<Int, String> 類型的字典

這個例子創(chuàng)建一個Int,String類型的字典來儲存可讀性較好的整數(shù)值。它的鍵是Int類型,以及它們的值是String類型。
如果 上下文(context )中已經(jīng)提供類型信息,可用一個字典實量(Dictionary Literal)創(chuàng)建一個空的字典,寫作[;](由一對[]包含一個冒號:)

復(fù)制代碼 代碼如下:
 
namesOfIntegers[16] = "sixteen"
// namesOfIntegers現(xiàn)在包含1 個鍵值對
namesOfIntegers = [:]
// namesOfIntegers 是一個類型為Int, String的空字典。

注意

在這個場景,Swift數(shù)組和字典類型是一個內(nèi)置的集合。更多的內(nèi)置類型和集合參見Generics

3、可變集合類型

數(shù)組和字典都是在一個集合中一起儲存不同的變量.如果你創(chuàng)建一個數(shù)組或者字典,再包含一個變量,創(chuàng)建的這個變量被稱為可變的(mutable) 這意味這,你可以在創(chuàng)建之后增加更多的元素來改變這個集合的長度,或者移除已經(jīng)包含的。 相反的, 如果你把一個數(shù)組或者字典定義為常量,則這個數(shù)組或者字典不是可變的,他們的長度并不能被改變。
在字典中,不可變也意味著你不能替換已經(jīng)存在的鍵的值。一個不可變字典,一旦被設(shè)置就不能改變。
數(shù)組的不可變有一點點的不同。然而,你仍然不能做任何有可能修改不可變數(shù)組的行為。但是你可以重新設(shè)置一個已經(jīng)存在的索引,這使得當Swift的數(shù)組的長度確定時,能更好地優(yōu)化數(shù)組的性能。
擁有可變行為的數(shù)組也影響著數(shù)組實例的分配和修改,更多內(nèi)容參見Assignment and Copy Behavior for Collection Types.

注意

在所有的例子中,這是一個好的練習(xí)去創(chuàng)建不可變集合,當數(shù)組的長度不需要被改變。
我確信Swift編譯器能優(yōu)化好你所創(chuàng)建的集合。

相關(guān)文章

  • Swift 字符串類型及常用方法詳解總結(jié)

    Swift 字符串類型及常用方法詳解總結(jié)

    Swift 字符串是一系列字符的集合。例如 "Hello, World!" 這樣的有序的字符類型的值的集合,它的數(shù)據(jù)類型為 String,接下來文章將詳細探討
    2021-11-11
  • swift表格控件使用方法詳解(UITableview)

    swift表格控件使用方法詳解(UITableview)

    這篇文章主要為大家詳細介紹了swift表格控件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 詳解Swift中的Characters字符類型與String字符串類型

    詳解Swift中的Characters字符類型與String字符串類型

    Swift中的字符串操作相當便捷,下面我們來詳解Swift中的Characters字符類型與String字符串類型,需要的朋友可以參考下
    2016-06-06
  • swift版webview加載網(wǎng)頁進度條效果

    swift版webview加載網(wǎng)頁進度條效果

    這篇文章主要為大家詳細介紹了swift實現(xiàn)webview加載網(wǎng)頁進度條效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Swift Set集合及常用方法詳解總結(jié)

    Swift Set集合及常用方法詳解總結(jié)

    Set集合為集類型,集是最簡單的一種集合,存放于集中的對象不按特定方式排序,只是簡單地把對象加入集合中,類似于向口袋里放東西,對集中存在的對象的訪問和操作是通過對象的引用進行的,因此在集中不能存放重復(fù)對象
    2021-11-11
  • 詳談swift內(nèi)存管理中的引用計數(shù)

    詳談swift內(nèi)存管理中的引用計數(shù)

    下面小編就為大家?guī)硪黄斦剆wift內(nèi)存管理中的引用計數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • iPhone與iWatch連接、控制、數(shù)據(jù)傳遞(Swift)的方法

    iPhone與iWatch連接、控制、數(shù)據(jù)傳遞(Swift)的方法

    這篇文章主要介紹了iPhone與iWatch連接、控制、數(shù)據(jù)傳遞(Swift)的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • Flutter iOS開發(fā)OC混編Swift動態(tài)庫和靜態(tài)庫問題填坑

    Flutter iOS開發(fā)OC混編Swift動態(tài)庫和靜態(tài)庫問題填坑

    這篇文章主要為大家介紹了Flutter iOS OC 混編 Swift動態(tài)庫和靜態(tài)庫問題填坑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Swift初始化器與可選鏈的使用方法介紹

    Swift初始化器與可選鏈的使用方法介紹

    初始化器初始化是準備類、結(jié)構(gòu)或枚舉的實例以供使用的過程。此過程涉及為該實例上的每個存儲屬性設(shè)置初始值,并執(zhí)行在新實例準備就緒可供使用之前所需的任何其他設(shè)置或初始化,可選鏈是一種可以請求和調(diào)用屬性、方法和子腳本的過程,用于請求或調(diào)用的目標可能為nil
    2022-08-08
  • 如何利用SwiftUI實現(xiàn)可縮放的圖片預(yù)覽器

    如何利用SwiftUI實現(xiàn)可縮放的圖片預(yù)覽器

    這篇文章主要給大家介紹了關(guān)于如何利用SwiftUI實現(xiàn)可縮放圖片預(yù)覽器的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用SwiftUI具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-09-09

最新評論