美文网首页
读书笔记第一周(10.3)

读书笔记第一周(10.3)

作者: DevKyle | 来源:发表于2015-10-03 23:04 被阅读40次

每周的文档阅读

Swift 2.0之初识面向协议编程

Swift 2.0 支持协议扩展((protocol extensions):协议扩展可以使某些特定的情况下,简化协议。

因为一个类型可以遵守多个协议,所以它可以从各个协议中接收到不同的默认实现。与其它语言中所支持的多重继承不同(说的就是C++吧),协议扩展不会为遵守它的类型增加额外的状态。

所有的类,结构体和枚举都可以遵守协议,而基类只能被类所继承。

协议拥有为值类型增加默认实现的能力,而不仅仅是类

很好的用处1:
定义一个协议遵从BooleanType类型

protocol Bird: BooleanType 

使用协议扩展能让我们有更简便的方法。

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

这个扩展可以让 canFly 属性来表示每个 Bird 类型的布尔值。就直接可以拿类型来当bool值来判断true ,false

文章

Swift2.0 支持泛型

try?

try?总是给已经在求值的结果类型又增添一层Optional。如果一个方法正常返回的类型是Int?,那么使用try?调用这个方法就会返回Int??或者Optional<Optional<Int>>文章

用模式匹配解析 URL

Generator 基本和 C++ 中的迭代方法一样。它是一个对象,next() 方法会返回被迭代序列中的下一个值,当迭代到结尾时返回 nil。
每个 SequenceType(特别是array)都有一个生成器,我们只需要对每个值调用 next() 方法就可以建立元组。如果这个数组比较短,它将用 nil 填充最后几个值:

本周遇到的问题和解决

Array的困惑

Array struct类型的泛型,是值类型的,OC中NSMutableArray是引用类型的,而且可以存放不同的类型的变量,即默认存放的是AnyObject,当然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类型的每个枚举值都可以关联一个值,并通过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 失败接下去的将不执行

本周项目的进展和解决

登入界面的逻辑
  1. viewDidLoad()NSUserDefaults.standardUserDefaults()读取数据库中的保存的用户配置
  2. checkForLog()检测文本框是否已经输入完毕
  3. verifyLogInform验证登入信息

不足:添加网络制式的判断,将头像文件等读取到当前用户

设置界面逻辑
  1. 实现退出操作

相关文章

网友评论

      本文标题:读书笔记第一周(10.3)

      本文链接:https://www.haomeiwen.com/subject/xeegcttx.html