1.自定义Log
// 1.获取打印所在的文件(例如:ViewController.swift)
// lastPathComponent:获取最后一个路径
let file = (#file as NSString).lastPathComponent
// 2.获取打印所在的方法(例如:viewDidLoad())
let funcName = #function
// 3.获取打印所在行数(例如22)
let lineNum = #line
要想在Swift中使用DEBUG,需要在Build Settings中设置一些东西,如下图:
设置DEBUG
将以下代码写在AppDelegate.swift中,写成全局函数,就可以在其他地方调用了
// T是动态类型
func SHLog<T>(message: T,file:String = #file,funcName:String = #function,lineNum:Int = #line){
#if DEBUG // Build Settings --> swift flags --> 在debug后点击+ --> -D 自己起的名字
let fileName = (file as NSString).lastPathComponent
print("\(fileName):(第\(lineNum)行) - \(message)")
// print("\(fileName):[\(funcName)](\(lineNum)) - \(message)") // 会打印函数名
#endif
}
2.Swift中异常处理
如果在调用系统某一个方法时,该方法最后有一个throws,说明该方法会抛出异常,那么需要对该异常进行处理
Swift中提供了三种处理异常的方式
1.try方式 程序员手动捕捉异常
let pattern = "abc"
do{
let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive)
}catch{
catch:捕捉异常
error:异常的对象
print(error)
}
2.try?方式 系统帮助我们处理异常,如果该方法出现了异常,则该方法返回nil;如果没有异常,则返回对应的对象
let pattern = "abc"
guard let regex = try? NSRegularExpression(pattern: pattern, options: .caseInsensitive) else{
return
}
3.try!方式(不建议,非常危险) 直接告诉系统,该方法没有异常。注意:如果该方法出现了异常,那么程序会报错(崩溃)
let pattern = "abc"
let regex = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive)
}
网友评论