日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Swift语言

發布時間:2024/6/21 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 Swift语言 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文為熟悉使用Objective-C開發iOS快速轉入swift開發提供一些便利的途徑,沒有過多華麗的說明底層原理,也沒有過多的概念說明,只提供swift的基本使用以及一些使用示例。高手請讓路哈。

Swift中幾種數據類型的簡單使用,具體的可以看API文檔的相關介紹。

枚舉:

在其他的語言中枚舉的本質是一組整形數字,通過枚舉將這些整形數字跟一些有意義的名稱聯系起來。但是在swift中枚舉并沒有要求一個枚舉值必須對應一個數值,你可以只單純是一個名稱,當然你也可以指定枚舉值跟一些數值聯系起來,同時數值不局限于整形數值,可以是浮點數值,字符或是字符串。

case用來定義一行新的成員,也可以將多個值定義到同一行使用逗號分隔
1 enum Month{ 2 case January 3 case February 4 case March 5 case April 6 case May 7 }

同時你也可以將枚舉值與數值對應起來:

 1 enum Month:Int{
 2     case January = 10
 3     case February
 4     case March
 5     case April
 6     case May
 7 }
 8 并且使用rawValue來訪問原始值:
 9 Month month = Month.Janusry
10 也可以通過rawValue來創建一個枚舉值:
11 let Jan = Month(rawValue:11)//注意此時是一個可選類型

數組:

swift中的數組跟OC的差別就是沒有了@符號

1,創建:

let array = ["happy","sad","down"]

//OC的數組只能夠存儲同一種數據類型,在swift中可以存儲不同數據類型的值

let array = ["szt","szt1",1,"sff"]

2,取值

數組取值同樣是通過下標取值的,跟OC一樣

3,遍歷

for item in array
{
    print(item)
}

5,刪除:

swift中數組刪除一個元素會將被刪除的元素返回

array.removeAtIndex(1)
array1.removeAll(keepCapacity: true)移除掉所有元素之后是否保存容量

6,數組合并:

數組里面元素同種類型才可以合并

1 var arr5 = ["123","456"]
2 var arr6 = [“567","789"]
3 arr5 += arr6      //數組合并的寫法

字典:

1,字典的創建跟數組一樣用[]

var dict = ["name":"szt","age":30]

2,遍歷數組有兩種方式

(1)遍歷key值

1 for q in dict.keys
2 {
3     print(dict[q])
4 }

(2)元組遍歷

1 for (key,value) in dict
2 {
3     print(key)
4   print(value)
5 }

3,新增/更新鍵值對

/*如果對應的key在dict中沒有的話就新增,如果有的話就更新*/

var dict = ["name":"st","age":23]

更新:dict["name"] = "szt"

新增:dict["gender"] = "man"

4,刪除:

dict.removeValueForKey("name")

5,合并

var dict2 = ["socore":32]

for (key,value) in dict2

{

dict[key] = value

}

字符串:

OC中的字符串是NSString,swift中是String,而且是一個結構體,性能比OC要高

1,創建

創建一個字符串:var str = "Hello, playground"

格式化創建一個字符串"name = szt,age = 30"

let num: Int = 23

let name: String = "szt"

var person = "name = (name),age = (num)"

2,截取:

截取字符串:在swift截取字符串建議使用OC中截取字符串的方法,所以在創建字符串的時候指明類型為NSString類型的

1 var str5:NSString = "iOS_developer_SZT"或者
2 var str5 = ""iOS_developer_SZT"" as NSString
3 str5.substringFromIndex(2)
4 str5.substringToIndex(5)
5 str5.substringWithRange(NSMakeRange(1, 5))

3,遍歷

swift中的字符串支持遍歷的:

1 var str7 = "www.Baidu.com"
2 for c in str7.characters    // 在swift2.0之前必須加上.characters
3 {
4   print(c)
5 }

閉包:

swift中的閉包相當于OC的block,用于保存一段代碼段,使用閉包或是block的好處是可以將閉包或block中的代碼段放在后臺執行不會卡住主線程,用于執行一些耗時的操作。

swift中閉包的格式為:

1  {
2   ()->()        /*前面一個為輸入參數類型,后面一個返回參數類型*/
3   in
4   /*閉包中的代碼段*/
5 }

1,閉包定義

定義一個輸入參數為String類型,返回值為[String]類型的閉包:

1 let demo = {
2             (str:String)->[String]
3             in
4            /*.......(代碼段)*/
5             return [str,str,str]
6     }

2,閉包作為函數參數:

func loadData(num:Int, finished: ()->())
 {
        print("執行耗時操作")
        finished()    //調用閉包
 }

調用這個函數:

loadData(12) { () -> () in

/*閉包中的代碼段*/

}

3,閉包中的循環引用:

閉包的循環引用類似于block中的循環引用,當self對閉包進行強引用,閉包中又對self進行強引用的,這時候后就會引起閉包的循環引用問題。解決的方式時將self進行weak修飾。

例子:

class ViewController: UIViewController {
    var finished:(()->())?
    override func viewDidLoad() {
        super.viewDidLoad()
        //閉包的循環引用分析
        /*
        viewController中定義了一個閉包finished,self擁有閉包finish,在self的finish中又強引用了self造成的循環引用,解決的問題就是在
        外面weak 修飾self
        */
        weak var weakSelf = self
        doSomeThing { () -> () in
            print("這是在閉包當中")
            //加!原因是self有可能釋放了沒值,加!表示肯定self在這里是有值的
            weakSelf!.view.backgroundColor = UIColor.redColor()
        }
    }
    func doSomeThing(finished:()->())
    {
        print("做一些耗時的操作")
        self.finished =  finished
        finished()
    }
    deinit     // 在swift中沒有dealloc方法,取而代之的是deinit方法,在頁面銷毀的時候調用
    {
        print("頁面銷毀")
    }  
}

函數:

函數格式

func 函數名()->()         
第一個括號表示輸入參數類型
第二個括號表示返回參數類型

例:

1,無輸入參數無返回值
func say() ->Void 或 func say() ->() 或 func say()

2,無輸入參數有返回值
func  isOrNot()->Bool
{
      print("OK")
      return true
}

3,有輸入參數無返回值
func addNum(b:Int,a:Int)
{
      print(a+b)
}

4,有參數有返回值
func maxNum(a:Int,b:Int) ->Int
{
       return a > b ? a:b
}

總結

以上是生活随笔為你收集整理的Swift语言的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。