寫在開頭 iOS開發(fā)者 群532084214 給大家提供一個交流技術 也可以聊天打屁的平臺
最近Swift 2 出來了 國內開發(fā)者迅速上手 參看這個
http://www.csdn.net/article/2015-06-09/2824909-xcode-7-beta-and-swift
但是發(fā)現(xiàn)要不然寫的不全 要不然寫都不寫 不知道毛線意思 索性自己寫
Repeat
func doTest() {
var x = 0
// 為了增強語意do換成repeat
repeat {
print(x)
x++
}while(x<6)
}
Error Handling
// ErrorType 可以throws 和catch NSError 已經實現(xiàn)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 這個一定會放在方法尾執(zhí)行 類型于 java finally 不過可以不配合try catch ")}
// swift 1.X init?
let index = Int("gs")
print(index)//nil 這樣真的好嗎 如果真的出現(xiàn)錯誤怎么把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:- 可以給協(xié)議加擴展
extension UITableViewDataSource {
func myFun(){
print("帶有默認實習的擴展 可以用作設計模式中適配器模式")
}
}