讀書筆記第一周(10.3)

每周的文檔閱讀

Swift 2.0之初識面向協(xié)議編程

Swift 2.0 支持協(xié)議擴展((protocol extensions):協(xié)議擴展可以使某些特定的情況下,簡化協(xié)議。

因為一個類型可以遵守多個協(xié)議,所以它可以從各個協(xié)議中接收到不同的默認實現(xiàn)。與其它語言中所支持的多重繼承不同(說的就是C++吧),協(xié)議擴展不會為遵守它的類型增加額外的狀態(tài)。

所有的類,結(jié)構(gòu)體和枚舉都可以遵守協(xié)議,而基類只能被類所繼承。

協(xié)議擁有為值類型增加默認實現(xiàn)的能力,而不僅僅是類

很好的用處1:
定義一個協(xié)議遵從BooleanType類型

protocol Bird: BooleanType 

使用協(xié)議擴展能讓我們有更簡便的方法。

extension BooleanType where Self: Bird {
     var boolValue: Bool {
          return self.canFly
      }
}

這個擴展可以讓 canFly 屬性來表示每個 Bird 類型的布爾值。就直接可以拿類型來當(dāng)bool值來判斷true ,false

文章

Swift2.0 支持泛型

try?

try?總是給已經(jīng)在求值的結(jié)果類型又增添一層Optional。如果一個方法正常返回的類型是Int?,那么使用try?調(diào)用這個方法就會返回Int??或者Optional<Optional<Int>>文章

用模式匹配解析 URL

Generator 基本和 C++ 中的迭代方法一樣。它是一個對象,next() 方法會返回被迭代序列中的下一個值,當(dāng)?shù)浇Y(jié)尾時返回 nil。
每個 SequenceType(特別是array)都有一個生成器,我們只需要對每個值調(diào)用 next() 方法就可以建立元組。如果這個數(shù)組比較短,它將用 nil 填充最后幾個值:

本周遇到的問題和解決

Array的困惑

Array struct類型的泛型,是值類型的,OC中NSMutableArray是引用類型的,而且可以存放不同的類型的變量,即默認存放的是AnyObject,當(dāng)然Array也可以存放任意類型如

var array = Array<AnyObject>()
array.append(12)
array.append(13)
array.append("nihao")
for a in array  where a is String {
//output nihao
    print(a)
}
Enum的困惑

Enum類型的每個枚舉值都可以關(guān)聯(lián)一個值,并通過switch 語句提取出來,但是不能修改這個值例如:

enum ServerResponse{
        case Result(String, String)
        case Error(String)
 }

let success = ServerResponse.Result("6:00 am", "8:09 pm")
let failure = ServerResponse.Error("Out of cheese.")

 switch success {
    case let .Result(sunrise,sunset):
    let serverResponse = "Sunrise is at \(sunrise) and sunset is at \(sunset)."
  case let .Error(error):
  let serverResponse = "Failure...  \(error)"
}

形如:

   if let str = String? {
        if let url = NSURL(str){
           ....
        }
   }

可以改寫成:

   if let str = String?,let url = NSURL(str){
           ....
   }

這是一個遞進的拆包語句 ,也就是說第一個let 失敗接下去的將不執(zhí)行

本周項目的進展和解決

登入界面的邏輯
  1. viewDidLoad()NSUserDefaults.standardUserDefaults()讀取數(shù)據(jù)庫中的保存的用戶配置
  2. checkForLog()檢測文本框是否已經(jīng)輸入完畢
  3. verifyLogInform驗證登入信息

不足:添加網(wǎng)絡(luò)制式的判斷,將頭像文件等讀取到當(dāng)前用戶

設(shè)置界面邏輯
  1. 實現(xiàn)退出操作
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、隨機數(shù) 不需要隨機數(shù)種子 arc4random()%N + begin:產(chǎn)生begin~begin+N的隨機數(shù)...
    我是小胡胡123閱讀 4,408評論 0 2
  • 基礎(chǔ)部分(The Basics) 當(dāng)推斷浮點數(shù)的類型時,Swift 總是會選擇Double而不是Float。 結(jié)合...
    gamper閱讀 1,493評論 0 7
  • 1、范型范型所解決的問題 函數(shù)、方法、類型:類,結(jié)構(gòu)體,枚舉,元組類型,協(xié)議參數(shù),返回值,成員函數(shù)參數(shù),成員屬性類...
    我是小胡胡123閱讀 942評論 0 1
  • Hello Word 在屏幕上打印“Hello, world”,可以用一行代碼實現(xiàn): 你不需要為了輸入輸出或者字符...
    restkuan閱讀 3,365評論 0 6
  • 一直沒有時間好好看一下swift,最近復(fù)習(xí)了一遍語法,這里記錄swift學(xué)習(xí)過程中遇到的一些問題和要點,和Obje...
    bomo閱讀 2,545評論 0 25

友情鏈接更多精彩內(nèi)容