写在开头 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("带有默认实习的扩展 可以用作设计模式中适配器模式")
}
}
网友评论