欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請(qǐng)碼778899分享:ios swift基礎(chǔ)學(xué)習(xí)筆記

柚子快報(bào)邀請(qǐng)碼778899分享:ios swift基礎(chǔ)學(xué)習(xí)筆記

http://yzkb.51969.com/

?1、變量聲明

1.1 類型標(biāo)注

? ? ? ? 當(dāng)你聲明常量或者變量的時(shí)候可以加上類型標(biāo)注(type annotation),說明常量或者變量中要存儲(chǔ)的值的類型。如果要添加類型標(biāo)注,需要在常量或者變量名后面加上一個(gè)冒號(hào)和空格,然后加上類型名稱

變量 var 修飾 例如:var a:Int=10//聲明一個(gè)為Int類型的變量a并賦值為10

獲取 var b:String="hello 樹哥"http://聲明一個(gè)為String類型的變量b并賦值為" hello 樹哥 "

1.2 自動(dòng)類型推斷

? ? ? ? swift 可以自動(dòng)類型推斷 ,當(dāng)你要處理不同類型的值時(shí),類型檢查可以幫你避免錯(cuò)誤。然而,這并不是說你每次聲明常量和變量的時(shí)候都需要顯式指定類型。如果你沒有顯式指定類型,Swift 會(huì)使用類型推斷(type inference)來選擇合適的類型。

var a=10//自動(dòng)推斷為Int類型

var b="hello 樹哥"http://自動(dòng)推斷為String 類型

var varB = 3.14159// varB 會(huì)被推測(cè)為 Double 類型

1.3 類型安全

Swift 是一個(gè)類型安全(type safe)的語言。

由于 Swift 是類型安全的,所以它會(huì)在編譯你的代碼時(shí)進(jìn)行類型檢查(type checks),并把不匹配的類型標(biāo)記為錯(cuò)誤。這可以讓你在開發(fā)的時(shí)候盡早發(fā)現(xiàn)并修復(fù)錯(cuò)誤

var a=10

a="hello 樹哥"http://提示錯(cuò)誤:error: cannot assign value of type 'String' to type 'Int'

意思為不能將 'String' 字符串賦值給 'Int' 變量

1.4 可選類型

Swift 的可選(Optional)類型,用于處理值缺失的情況。可選表示"那兒有一個(gè)值,并且它等于 x "或者"那兒沒有值"。類似與kotlin dart語言 可空類型,例如:

var myString:String? = nil

說明myString的值可以賦值為nil 如 myString=nil,也可以賦值正常String 值 ,如 myString ="hello 樹哥"

1.4.1 強(qiáng)制解析

當(dāng)你確定可選類型確實(shí)包含值之后,你可以在可選的名字后面加一個(gè)感嘆號(hào)(!)來獲取值。這個(gè)感嘆號(hào)表示這個(gè)值一定不為空 這個(gè)和dart語言類似 跟kotlin的!!類似,比如:

var myString:String? = "hello 樹哥"

print(myString) //打印輸出: Optional("hello 樹哥")

加上!

var myString:String? = "hello 樹哥"

print(myString!) //打印輸出:hello 樹哥

1.4.2 自動(dòng)解析

在聲明可選變量時(shí)使用感嘆號(hào)(!)替換問號(hào)(?)。這樣可選變量在使用時(shí)就不需要再加一個(gè)感嘆號(hào)(!)來獲取值,它會(huì)自動(dòng)解析。

var myString:String!

myString = "hello 樹哥"

print(myString)//打印輸出:hello 樹哥

當(dāng)然如果變量在聲明時(shí)就已經(jīng)賦初始值的情況就可以直接使用了,例如:

var myString:String = "hello 樹哥"

print(myString)//打印輸出:hello 樹哥

1.4.3 可選綁定

使用 if let臨時(shí)常量 = 可選類型 來判斷可選類型是否包含值,如果包含就把值賦給臨時(shí)常量,否則(可選類型為nil時(shí))if語句判斷為假。

var optionalName: String? = "樹哥"

var greeting = "樹哥!"

if let name = optionalName {

greeting = "Hello, \(name)"

}

print(greeting)

如果optionalName的值不為空,則把optionalName的值賦值給name ,然后運(yùn)行? {

? ? greeting = "Hello, \(name)"

}的語句,比如以上例子 最后打印下greeting值,因?yàn)?greeting = "樹哥!"已賦值不為空,所以最后打印 Hello,樹哥!

如果optionalName的值是nil? ?條件會(huì)判斷為false 大括號(hào)里面的代碼會(huì)跳過;

1.4.4 類型別名

類型別名對(duì)當(dāng)前的類型定義了另一個(gè)名字,類型別名通過使用 typealias 關(guān)鍵字來定義。語法格式如下:

typealias newname = type

例如以下定義了 Int 的類型別名為 Feet:

typealias Feet = Int

現(xiàn)在,我們可以通過別名來定義變量:

typealias Feet = Int

var distance: Feet = 100

print(distance)

1.5 Swift 字符串?

1.5.1 字符串

你可以通過使用字符串字面量或 String 類的實(shí)例來創(chuàng)建一個(gè)字符串:

// 使用字符串字面量

var stringA = "Hello, World!"

print( stringA )

// String 實(shí)例化

var stringB = String("Hello, World!")

print( stringB )

// 使用字符串字面量創(chuàng)建空字符串

var stringA = ""

1.5.2 Swift 字符(Character)

let char1: Character = "A" //只能單個(gè)字符 多個(gè)會(huì)報(bào)錯(cuò)

例如:

// Swift 中以下賦值會(huì)報(bào)錯(cuò)

let char: Character = "AB"

//空字符變量

Swift 中不能創(chuàng)建空的 Character(字符) 類型變量或常量:

2、聲明常量

常量一旦設(shè)定,在程序運(yùn)行時(shí)就無法改變其值。

常量可以是任何的數(shù)據(jù)類型如:整型常量,浮點(diǎn)型常量,字符常量或字符串常量。同樣也有枚舉類型的常量:

常量類似于變量,區(qū)別在于常量的值一旦設(shè)定就不能改變,而變量的值可以隨意更改。

let a= 42

a=20//報(bào)錯(cuò) ,常量不可修改值

print(a)

其他都和變量一樣,比如類型推薦、類型標(biāo)注、類型別名等

3、運(yùn)算符

像算術(shù)運(yùn)算符(swift取消了++和--)、比較運(yùn)算符、邏輯運(yùn)算符和大多數(shù)編程語言一樣,區(qū)間運(yùn)算符 ... 這個(gè)比較獨(dú)特類似kotlin的

Swift 提供了兩個(gè)區(qū)間的運(yùn)算符。

運(yùn)算符 描述 實(shí)例 閉區(qū)間運(yùn)算符 閉區(qū)間運(yùn)算符(a...b)定義一個(gè)包含從a到b(包括a和b)的所有值的區(qū)間,b必須大于等于a。 ? 閉區(qū)間運(yùn)算符在迭代一個(gè)區(qū)間的所有值時(shí)是非常有用的,如在for-in循環(huán)中: 1...5 區(qū)間值為 1, 2, 3, 4 和 5 半開區(qū)間運(yùn)算符 半開區(qū)間(a..

比如

//閉區(qū)間運(yùn)算符:

for index in 1...5 {

print(index)

}

//打印 1,2,3,4,5

//半開區(qū)間運(yùn)算

for index in 1..<5 {

print(index)

}//打印 1,2,3,4

3.1 Swift 空格

Swift語言并不是像C/C++,Java那樣完全忽視空格,Swift對(duì)空格的使用有一定的要求

運(yùn)算符不能直接跟在變量或常量的后面。例如下面的代碼會(huì)報(bào)錯(cuò):

let a= 1 + 2 //a后面直接加上等號(hào)(=)

let a = 1+ 2//1后面直接添加 加號(hào)(+)

let a =1+ 2

let a=1+2

let a=1+ 2

let a =1+2//=后面直接跟上數(shù)值

只有這樣寫才不會(huì)報(bào)錯(cuò):

let a = 1 + 2; // 編碼規(guī)范推薦使用這種寫法

let b = 3+4 // 這樣也是OK的

4、條件語句

if語句和其他編程語言一樣 忽略

switch語句有點(diǎn)區(qū)別

Swift switch 語句中,默認(rèn)語法是必須要添加 default 語句。但也可以不加

注意:在大多數(shù)語言中,switch 語句塊中,case 要緊跟 break,否則 case 之后的語句會(huì)順序運(yùn)行,而在 Swift 語言中,默認(rèn)是不會(huì)執(zhí)行下去的,switch 也會(huì)終止(switch 不會(huì)從上一個(gè) case 分支落入到下一個(gè) case 分支中。只要第一個(gè)匹配到的 case 分支完成了它需要執(zhí)行的語句,整個(gè)switch代碼塊完成了它的執(zhí)行)。如果你想在 Swift 中讓 case 之后的語句會(huì)按順序繼續(xù)運(yùn)行,則需要使用 fallthrough 語句。

4.1 省略break

Swift Switch 語句中, break 是可以省略不寫的(添加了也可以),默認(rèn)執(zhí)行完當(dāng)前 case 下的內(nèi)容后,直接返回了,即使后續(xù)還有可滿足的條件。

var a=2

switch(a){

case 1:

print("hello 樹哥")

case 2:

print("hello 王哥")

case 2:

print("hello 寶哥")

case 4:

print("hello 強(qiáng)哥")

default:

print("hello 綠哥")

}

//打印hello 王哥

4.2 fallthrough

Swift fallthrough 語句讓 case 之后的語句會(huì)按順序繼續(xù)運(yùn)行,且不論條件是否滿足都會(huì)執(zhí)行。

var a=2

switch(a){

case 1:

print("hello 樹哥")

case 2:

print("hello 王哥")

fallthrough

case 3://這里改為3了

print("hello 寶哥")

case 4:

print("hello 強(qiáng)哥")

default:

print("hello 綠哥")

}

//hello 王哥

//hello 寶哥

5、Swift 數(shù)組

Swift 數(shù)組使用有序列表存儲(chǔ)同一類型的多個(gè)值。相同的值可以多次出現(xiàn)在一個(gè)數(shù)組的不同位置中。

Swift 數(shù)組會(huì)強(qiáng)制檢測(cè)元素的類型,如果類型不同則會(huì)報(bào)錯(cuò),Swift 數(shù)組應(yīng)該遵循像Array這樣的形式,其中Element是這個(gè)數(shù)組中唯一允許存在的數(shù)據(jù)類型。

如果創(chuàng)建一個(gè)數(shù)組,并賦值給一個(gè)變量,則創(chuàng)建的集合就是可以修改的。這意味著在創(chuàng)建數(shù)組后,可以通過添加、刪除、修改的方式改變數(shù)組里的項(xiàng)目。如果將一個(gè)數(shù)組賦值給常量,數(shù)組就不可更改,并且數(shù)組的大小和內(nèi)容都不可以修改。

5.1 創(chuàng)建數(shù)組

以下是創(chuàng)建一個(gè)初始化大小數(shù)組的語法:

var someArray = [SomeType](repeating: InitialValue, count: NumbeOfElements)

以下實(shí)例創(chuàng)建了一個(gè)類型為 Int ,數(shù)量為 3,初始值為 0 的空數(shù)組:

var someInts = [Int](repeating: 0, count: 3)

以下實(shí)例創(chuàng)建了含有三個(gè)元素的數(shù)組:

var someInts:[Int] = [10, 20, 30]

var someStrings:[String]=["hello","啊","樹哥"]

5.2 訪問數(shù)組

我們可以根據(jù)數(shù)組的索引來訪問數(shù)組的元素,語法如下:

var someVar = someArray[index]

index 索引從 0 開始,即索引 0 對(duì)應(yīng)第一個(gè)元素,索引 1 對(duì)應(yīng)第二個(gè)元素,以此類推。

var a:[Int] = [1,2,3,5]

print(a[0])//打印:1

5.3 遍歷數(shù)組

var a:[String]=["hello","啊","樹哥"]

for 循環(huán)

for i in a{

print(i)

}

forEach循環(huán)

a.forEach {

i in print(i)

}

?enumerate() 方法遍歷(需要每個(gè)數(shù)據(jù)項(xiàng)的值和索引值)

var a:[]=["hello","啊","樹哥"]

for (index, item) in a.enumerated() {

print("在 index = \(index) 位置上的值為 \(item)")

}

打印:

在 index = 0 位置上的值為 hello

在 index = 1 位置上的值為 啊

在 index = 2 位置上的值為 樹哥

5.4 修改數(shù)組

使用 append() 方法或者賦值運(yùn)算符 += 在數(shù)組末尾添加元素

var a:[String]=["hello","啊","樹哥"]

a.append("寶哥")

//或者 a+=["寶哥"]

print(a)

//打印: ["hello", "啊", "樹哥", "寶哥"]

也可以通過索引修改數(shù)組元素的值:

var a:[String]=["hello","啊","樹哥"]

a[1]="呀"http://修改數(shù)組第二個(gè)元素的值

print(a)

//打?。篬"hello", "呀", "樹哥"]

5.5 isEmpty 屬性

我們可以通過只讀屬性 isEmpty 來判斷數(shù)組是否為空,返回布爾值:

var a:[String]=["hello","啊","樹哥"]

print("a.isEmpty = \(a.isEmpty)") //輸出 a.isEmpty = false

6、 字典

Swift 字典用來存儲(chǔ)無序的相同類型數(shù)據(jù)的集合,Swift 字典會(huì)強(qiáng)制檢測(cè)元素的類型,如果類型不同則會(huì)報(bào)錯(cuò)。

Swift 字典每個(gè)值(value)都關(guān)聯(lián)唯一的鍵(key),鍵作為字典中的這個(gè)值數(shù)據(jù)的標(biāo)識(shí)符。

和數(shù)組中的數(shù)據(jù)項(xiàng)不同,字典中的數(shù)據(jù)項(xiàng)并沒有具體順序。我們?cè)谛枰ㄟ^標(biāo)識(shí)符(鍵)訪問數(shù)據(jù)的時(shí)候使用字典,這種方法很大程度上和我們?cè)诂F(xiàn)實(shí)世界中使用字典查字義的方法一樣。

Swift 字典的key沒有類型限制可以是整型或字符串,但必須是唯一的。

如果創(chuàng)建一個(gè)字典,并賦值給一個(gè)變量,則創(chuàng)建的字典就是可以修改的。這意味著在創(chuàng)建字典后,可以通過添加、刪除、修改的方式改變字典里的項(xiàng)目。如果將一個(gè)字典賦值給常量,字典就不可修改,并且字典的大小和內(nèi)容都不可以修改。

6.1 創(chuàng)建字典

var someDict = [KeyType: ValueType]()

以下是創(chuàng)建一個(gè)空字典,鍵的類型為 Int,值的類型為 String 的簡單語法:

var someDict = [Int: String]()

創(chuàng)建一個(gè)非空字典,同樣key為Int類型,value為String類型,例如 :

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"] ,

6.2 訪問字典

我們可以根據(jù)字典的索引來訪問數(shù)組的元素,語法如下:

var someVar = someDict[key]

例如

var someDict:[Int:String] = [1:"hello", 2:"a", 3:"樹哥"]

print(someDict[2]!)//打?。篴 (此處使用了強(qiáng)制解析!不然會(huì)打印Optional("a"))

6.3 修改字典

6.3.1 updateValue

我們可以使用?updateValue(forKey:)?增加或更新字典的內(nèi)容。如果 key 不存在,則添加值,如果存在則修改 key 對(duì)應(yīng)的值。updateValue(_:forKey:)方法返回Optional值。

var someDict:[Int:String] = [1:"hello", 2:"a", 3:"樹哥"]

print(someDict[2])

someDict.updateValue("呀",forKey:2)

print(someDict[2])

//打?。?/p>

Optional("a")

Optional("呀")

6.3.2 通過指定的 key 來修改

var someDict:[Int:String] = [1:"hello", 2:"a", 3:"樹哥"]

print(someDict[2])

someDict[2]="啊"

print(someDict[2])

//打?。?/p>

Optional("a")

Optional("啊")

6.4 移除 Key-Value 對(duì)

6.4.1 ?removeValueForKey()?

我們可以使用?removeValueForKey()?方法來移除字典 key-value 對(duì)。如果 key 存在該方法返回移除的值,如果不存在返回 nil?

var someDict:[Int:String] = [1:"hello", 2:"a", 3:"樹哥"]

someDict.removeValue(forKey: 2)

for x in someDict{

print(x)

}

//打?。?/p>

(3, "樹哥")

(1, "hello")

6.4.2 指定鍵的值為 nil?

通過指定鍵的值為 nil 來移除 key-value(鍵-值)對(duì)

var someDict:[Int:String] = [1:"hello", 2:"a", 3:"樹哥"]

someDict[2]=nil

for x in someDict{

print(x)

}

//打?。?/p>

(3, "樹哥")

(1, "hello")

6.5 字典遍歷

字典的遍歷和數(shù)組一樣 for循環(huán)、forEach或者enumerate()方法

var someDict:[Int:String] = [1:"hello", 2:"a", 3:"樹哥"]

for (key,value) in someDict{

print("key=\(key),value=\(value)")

}

for (key, value) in someDict.enumerated() {

print("字典 key \(key) - 字典 (key, value) 對(duì) \(value)")

}

someDict.forEach{

(key,value) in print("key=\(key),value=\(value)")

}

打印結(jié)果:

key=2,value=a

key=3,value=樹哥

key=1,value=hello

字典 key 0 - 字典 (key, value) 對(duì) (2, "a")

字典 key 1 - 字典 (key, value) 對(duì) (3, "樹哥")

字典 key 2 - 字典 (key, value) 對(duì) (1, "hello")

key=2,value=a

key=3,value=樹哥

key=1,value=hello

6.6 count 屬性

使用只讀的?count?屬性來計(jì)算字典有多少個(gè)鍵值對(duì):

var someDict:[Int:String] = [1:"hello", 2:"a", 3:"樹哥"]

print(someDict.count)//打?。?

7、元組

元組類型,用于在單個(gè)復(fù)合值中對(duì)多個(gè)值進(jìn)行分組

元組中的值可以是任何類型,并且不需要是相同類型

7.1 元組聲明

方式1:最簡單的元組,就是在圓括號(hào)中,用逗號(hào)分隔的一組值

var aTuple = (10, "TottiLV")

//也可以存放數(shù)組和字典

//例如

let arr = [1,2,3]

let dic = ["key1":"value1","key2":"value2","key3":"value3"]

let anyTuple = (arr, dic)

是一個(gè)具有兩個(gè)值的元組,一個(gè)元素是整數(shù)類型,另一個(gè)元素是字符串類型(這是一個(gè)合法的數(shù)據(jù))

方式2:可以在聲明時(shí)命名元組的變量,也可以使用它們的名稱來調(diào)用

let error404= (errorCode:404, description:"Not Found")

7.2 訪問元組

7.2.1 使用下標(biāo)取值

let error404 = (errorCode:401, description:"Not Found")

//取下標(biāo)為1處的值

print(error404.1)//打印:Not Found

7.2.2 使用元素名稱

let error404 = (errorCode:401, description:"Not Found")

print(error404.errorCode)//輸出:401

7.2.3 拆分成常量/變量

let error404 = (errorCode:401, description:"Not Found")

var (x,y)=error404

print(x)

print(y)

//打?。?/p>

401

Not Found

7.2.4 總結(jié)

元組優(yōu)點(diǎn):

?1、元組可以同時(shí)存儲(chǔ)多種類型元素,且元素類型固定,以保數(shù)據(jù)安全,除非你定義數(shù)據(jù)類型為Any。編譯器會(huì)對(duì)賦值參數(shù)類型進(jìn)行檢查

?2、元組的元素個(gè)數(shù)固定,不允許增加、刪除,編譯器會(huì)嚴(yán)格校驗(yàn)賦值參數(shù)個(gè)數(shù)

?3、無需定義key,但是必要時(shí)可以為數(shù)據(jù)命名,方便數(shù)據(jù)訪問

?4、適合同時(shí)遍歷多元數(shù)據(jù)

?元組缺點(diǎn):

?1、不適合存儲(chǔ)大量數(shù)據(jù),因?yàn)樵M不支持append、remove等方法

?2、考慮到工程實(shí)際情況,后段使用的語言可能不支持元組,需要轉(zhuǎn)換為其他格式

?元組適合應(yīng)用于組合少量的多元的數(shù)據(jù),與數(shù)組、字典結(jié)合使用可以產(chǎn)生強(qiáng)大威力

8、函數(shù)

8.1函數(shù)定義

Swift 定義函數(shù)使用關(guān)鍵字?func。

定義函數(shù)的時(shí)候,可以指定一個(gè)或多個(gè)輸入?yún)?shù)和一個(gè)返回值類型。

每個(gè)函數(shù)都有一個(gè)函數(shù)名來描述它的功能。通過函數(shù)名以及對(duì)應(yīng)類型的參數(shù)值來調(diào)用這個(gè)函數(shù)。函數(shù)的參數(shù)傳遞的順序必須與參數(shù)列表相同。

函數(shù)的實(shí)參傳遞的順序必須與形參列表相同,->?后定義函數(shù)的返回值類型。

語法

func funcname(形參) -> returntype

{

Statement1

Statement2

……

Statement N

return parameters

}

8.2 函數(shù)的創(chuàng)建

8.2.1 無參數(shù)、無返回值

func fun1(){

print("無參數(shù)、無返回值函數(shù)")

}

8.2.2 有參數(shù) 無返回值

func fun2(name:String){

print("有參數(shù)無返回值函數(shù) \(name)")

}

//調(diào)用

fun2(name:"hello")

8.2.3 無參數(shù) 有返回值

func fun3()->String{

return "hello"

}

8.2.4 有參數(shù) 有返回值

func fun4(name:String)->String{

return "hello " + "\(name)"

}

//調(diào)用fun2(name:"hello")

8.3 參數(shù)標(biāo)簽

8.3.1 參數(shù)名帶標(biāo)簽

swift 函數(shù)中 參數(shù)名可以帶標(biāo)簽

一般情況下我們聲明一個(gè)函數(shù),如下

func fun5(name:String){

print("hello \(name)")

}

調(diào)用:fun5(name:"樹哥")

然后使用參數(shù)標(biāo)簽的話,可以這樣寫

func fun6(xxx name:String){

print("hello \(name)")

}

調(diào)用: fun6(xxx :"樹哥)

8.3.2 忽略參數(shù)名

標(biāo)簽的作用就是提示 標(biāo)簽可以使用 _ 來代替,這樣調(diào)用函數(shù)的時(shí)候,直接傳值要傳的值就行了,例如:

func fun9(_ name:String){

print("hello \(name)")

}

fun9("樹哥")

8.4 函數(shù)參數(shù)默認(rèn)值

函數(shù)中默認(rèn)參數(shù)指的是賦了初始值的參數(shù),在調(diào)用函數(shù)的時(shí)候 默認(rèn)參數(shù)可傳也可不傳,類似kotlin和dart一樣

func fun10(msg:String,name:String="樹哥"){

print(msg+"\(name)")

}

fun10(msg:"hello")

fun10(msg:"hello",name:"大樹")

8.5 函數(shù)中的輸入輸出函數(shù)(inout)

一般默認(rèn)在函數(shù)中定義的參數(shù)都是常量參數(shù),也就是這個(gè)參數(shù)你只可以查詢使用,不能改變它的值。

如果想要聲明一個(gè)變量參數(shù),可以在參數(shù)定義前加 inout 關(guān)鍵字,這樣就可以改變這個(gè)參數(shù)的值了。例如:

func getName(_ name: inout String).........

此時(shí)這個(gè) name 值可以在函數(shù)中改變。

一般默認(rèn)的參數(shù)傳遞都是傳值調(diào)用的,而不是傳引用。所以傳入的參數(shù)在函數(shù)內(nèi)改變,并不影響原來的那個(gè)參數(shù)。傳入的只是這個(gè)參數(shù)的副本。

當(dāng)傳入的參數(shù)作為輸入輸出參數(shù)時(shí),需要在參數(shù)名前加 & 符,表示這個(gè)值可以被函數(shù)修改。

func swapValues(_ v1: inout Int, _ v2: inout Int) {

let tmp = v1

v1 = v2

v2 = tmp

}

var num1 = 10

var num2 = 20

swapValues(&num1, &num2)

print(num1)//打印輸出:20

print(num2)//打印輸出:10

8.6 函數(shù)重載

規(guī)則

1、函數(shù)名相同

2、參數(shù)個(gè)數(shù)不同 || 參數(shù)類型不同 || 參數(shù)標(biāo)簽不同

9、 閉包

10、結(jié)構(gòu)體

11、類

12、拓展

柚子快報(bào)邀請(qǐng)碼778899分享:ios swift基礎(chǔ)學(xué)習(xí)筆記

http://yzkb.51969.com/

相關(guān)文章

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19030201.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄