Time of Update: 2018-08-16
1. Swift枚舉基本概念 Swift中的枚舉比OC中的枚舉強大, 因為Swift中的枚舉是一等類型, 它可以像類和結構體一樣增加屬性和方法 格式: enum Method{ case 枚舉值} enum Method{ case Add case Sub case Mul case Div} 2. 枚舉的基本使用 可以枚舉值可以連著寫, 但是要以逗號,分隔 enum Menthod1
Time of Update: 2018-08-16
協議定義了某一批所要遵循的規範,但不關心類的內部狀態資料,也不關心類方法的實現細節。它只規定類中必須提供的方法。類、結構體、枚舉通過提供協議所要求的方法,屬性的具體實現來採用協議。 任意能夠滿足協議要求的類型被稱為協議的遵循者。 這種讓規範和實現分離的方式正是協議的好處,一種松耦合的設計。 swift中協議的作用,就相當於其他語言中的作用。
Time of Update: 2018-08-16
雖然說swift是基於OC的,但是swift和OC還是有很多去別的,今天我們來說一下枚舉變數 下面是某個免費簡訊驗證碼的驗證方法的返回狀態 enum SMS_ResponseState{ SMS_ResponseStateFail = 0, SMS_ResponseStateSuccess=1};這是一個正常的OC枚舉寫法,但是如果你在swift裡面調用這個寫在OC裡面的枚舉想進行操作的話,那麼對不起,你會收到各種錯誤提示 比如你不能這樣 if
Time of Update: 2018-08-16
Swift參考某幾種語言,增加了泛型這一機制,讓人又愛又恨。 泛型增加了語言的表現力,減少了冗餘,這是好訊息;然而壞訊息是:對於複雜的實現來說,七繞八不繞,文法容易把人搞暈…以下就是一例。 這是從我實際的項目中摘出來的例子,做了簡化。有童鞋看到後面的代碼可能會問,這麼簡單的問題,幹嘛要繞圈寫這麼複雜的實現。。。這不前面說了麼,因為實際的項目複雜。。。這裡只是簡化到講解本主題,所以若有詞不達意,也請包涵。 這裡有一個通用協議和另一個Main協議,Main協議遵守通用協議:
Time of Update: 2018-08-14
Swift中字串的儲存機制與其它語言不同,採用的不是固定位元組方式儲存字元,每個字元佔用的位元組數可能不同。 當我們需要知道一個字串有多少字串時,我們往往想知道的是我們所看到的字元數,而非儲存的位元組數。 一個字元可能需要1,2,3,4個位元組來儲存。 英文:1個位元組 xxx: 2 個位元組。 --- 沒找到例子 中文:3個位元組 emoji表情字元:4個位元組 charaters.count表示有多少字元,也就是我們所見到有幾個字元,而不關心其儲存方式。
Time of Update: 2018-08-16
swift中有個?文法來實執行個體可以為nil, 沒有使用?的執行個體都不能為nil. 因為使用習慣lua了,所以在想能不能像lua那樣,如果一個方法有三個參數,我只想傳入前兩個,後面一個不去管呢. 分享下在swift中如何使用類似這樣的方法,雖然這種方法也得修改每個調用方法的地方. func test(p1: String , p2: String?) -> String? { return nil } test("a", nil)
Time of Update: 2018-08-19
(1)函數也可以賦值給一個變數,此時這個變數的類型是什麼呢。 import Foundationfunc add(a:Int,b:Int) -> Int{ return a+b}let anotherAdd:(Int,Int) -> Int = addanotherAdd(3,4) (2)如果參數的傳回值為空白,那麼這個函數類型應該怎麼寫呢。 import Foundationfunc add(a:Int,b:Int) { var c = a +
Time of Update: 2018-08-16
枚舉: 其實大家都耳熟能詳了,多種語言都有,可能大家使用的頻率不一樣罷了. 簡介: 枚舉為一系列相關聯的值定義一個公用的資料類型,同時能夠讓你在編程的時候在型別安全的情況下去使用這些值. 比如:周,月份等等 Switch 就更不用說了,只不過,Swift的Switch太強大了,強大到你驚訝.嘻嘻... 史上最強大的Switch來襲 請看Code+注釋: //// ViewController.swift// enum with switch////
Time of Update: 2018-08-15
逃逸閉包的書面定義 一個傳入函數的閉包如果在函數執行結束之後才會被調用,那麼這個閉包就叫做逃逸閉包。 對定義的理解 通過定義我們知道,逃逸閉包首先是一個閉包(感覺有點廢話),但是逃逸閉包又不是普通的閉包,因為它會在函數結束後才執行(這是特點)。 什麼閉包會在函數執行之後才執行呢? 很多啟動非同步作業的函數接受一個閉包參數作為 completion
Time of Update: 2018-08-15
閉包只有在函數中做參數的時候才會區分逃逸閉包和非逃逸閉包 在Swift 3 後,傳遞閉包到函數中的時候,系統會預設為非逃逸閉包類型 (Nonescaping Closures)@noescape,有非逃逸閉包類型必然就有逃逸閉包(Escaping Closures),逃逸閉包在閉包前要添加@escaping關鍵字 非逃逸閉包的生命週期:1.把閉包作為參數傳給函數;2.函數中調用閉包;3.退出函數,閉包生命週期結束 即非逃逸閉包的生命週期與函數相同 逃逸閉包的生命週期:
Time of Update: 2018-08-15
@autoclosure(自動閉包) 1:自動閉包,顧名思義是一種自動建立的閉包,用於封裝函數參數的運算式,可以說是一種簡便文法. 2:自動閉包不接受任何參數,被調用時會返回被封裝在其中的運算式的值。 3:自動閉包的好處之二是讓你能夠延遲求值,因為程式碼片段不會被執行直到你調用這個閉包,這樣你就可以控制碼什麼時候執行。
Time of Update: 2018-08-14
自從參加工作一直在用OC做iOS開發。在2015年的時候蘋果剛推出swift1.0不久,當時畢竟是新推出的語言,大家也都很有激情的學習。不過在學完後發現很難在實際項目中使用,再加上當時公司項目都是基於OC來做的開發,就把swift放一邊了。 後來也不斷看到網上對swift的各種評價,有好有壞,總之是一門剛推出的語言吧。文法設計,與OC無縫銜接等存在一些問題還是可以接受的。 自從2017年9月蘋果推出swift4.0後,基本大的文法變動沒有了。慢慢的有很多公司開始使用swift開發公司項目
Time of Update: 2018-08-16
標籤:catch return == default send try cte lse div func lightBtnAction(sender: UIButton){
Time of Update: 2018-08-16
標籤:reg hone format class obj cat UNC regex gen //擷取Imagefunc FImage(_ imageName:String) ->
Time of Update: 2018-08-07
標籤:效果 cal sel web 注入 use path 屬性 mac 代碼地址如下:http://www.demodashi.com/demo/12754.htmlJS-OC-SwiftJS
Time of Update: 2018-08-03
標籤:effective for 建立 -- pen ocs ons native stack Any class that does not inherit from another
Time of Update: 2018-08-02
標籤:row cat UNC utf8 erro 成功 let import throw import UIKit class ViewController:
Time of Update: 2018-08-01
標籤:ack 系統 height pac rda sha ret under result 在該函數前添加 @discardableResult
Time of Update: 2018-08-02
標籤:ati == obj uil res cga idt nsf int /**點選手勢*/func tapGestureDemo() { //建立手勢辨識器 let
Time of Update: 2018-07-31
標籤:循環參考 存在 rop 如何 ops 解決 自動 記憶體流失 self 在navtionViewController的子控制器A中,將B控制項作為其的一個屬性,在定義B控制項的一個bloc