Swift 2.0 所有新特性

写在开头 iOS开发者 群532084214 给大家提供一个交流技术 也可以聊天打屁的平台

最近Swift 2 出来了 国内开发者迅速上手 参看这个

http://www.csdn.net/article/2015-06-09/2824909-xcode-7-beta-and-swift

但是发现要不然写的不全 要不然写都不写 不知道毛线意思 索性自己写
Repeat

       func doTest() {
    var x = 0
    //        为了增强语意do换成repeat
    repeat {
        print(x)
        x++
    }while(x<6)
    
}

Error Handling

// ErrorType 可以throws 和catch  NSError 已经实现ErrorType
enum MyError:ErrorType{
    case MissName
    case MissOther
} //enum 适合自定义error




//     no throw
func  errorTest1() -> Bool {
    do {
        try NSURL(string: "fa")?.checkResourceIsReachable()
        return true
        //            指定错误
    }catch NSURLError.FileDoesNotExist {
        return false
    }catch {
        return false
    }
}


//     has throw
//    guard 也可以配合throw
func errorTest2() throws {
    defer { print("no meter how  这个一定会放在方法尾执行 类型于 java  finally  不过可以不配合try  catch ")}
//             swift 1.X init?
    let index = Int("gs")
    print(index)//nil 这样真的好吗  如果真的出现错误怎么把Error 到处传递 ?

    // swift 2.0
    do {
        try NSURL(string: "fa")?.checkResourceIsReachable()
    }catch  {
        throw error
    }
}



//     I know never error
func errorTest3 (){
    //        当然只是 demo  我瞎鸡巴写的 肯定有错的
    try!  NSURL(string: "http://www.baidu.com")?.checkResourceIsReachable()
    print("绝壁没有错误")
}

@avAiliable

@available(iOS 8.0, OSX 10.10, *)
func startUserActivity() -> NSUserActivity? {
    if #available(iOS 8.0, OSX 10.10, *) {
        // 当版本匹配时使用Handoff APIs.
        let activity = NSUserActivity(activityType:"com.example.ShoppingList.view")
        activity.becomeCurrent()
    } else {
        //当版本不匹配时返回.
        return nil
        
    }
    return nil
}

defer

func deferTest() {
    let f = fopen("x.txt", "r")
    defer {
        fclose(f)
    }
    
}

guard

func guardTest() -> String {
    let  name:NSString  = "fa"
    let  age  = 8.0
    guard  let realName = name   as? String ,            let realAge = age as? Double else {
        print("这个guard类似于if  只不过大部分时间用来坐模式匹配 ")
        
        return "'这里转换失败提前退出  其实就是  guard  ====== !if "
    }
    //        guard  let realName = name   as? String ,            let realAge = age as? Int else {
    //            print("这个guard类似于if  只不过大部分时间用来坐模式匹配 ")
    //
    //            return "'这里转换失败提前退出  其实就是  guard  ====== !if "
    //        }
    print("\(realName)\(realAge)   转换成功")
    return "转换成功"
    //        for in  where    /  switch case where  / if let where /while...where 也支持匹配
}

Protocol Extension has default implementation

//MARK:- 可以给协议加扩展
  extension UITableViewDataSource {
func myFun(){
    print("带有默认实习的扩展 可以用作设计模式中适配器模式")
   }
}

你可能感兴趣的:(Swift 2.0 所有新特性)