
Swift
1.自定義Log
// 1.獲取打印所在的文件(例如:ViewController.swift)
// lastPathComponent:獲取最后一個路徑
let file = (#file as NSString).lastPathComponent
// 2.獲取打印所在的方法(例如:viewDidLoad())
let funcName = #function
// 3.獲取打印所在行數(shù)(例如22)
let lineNum = #line
要想在Swift中使用DEBUG,需要在Build Settings中設(shè)置一些東西,如下圖:
設(shè)置DEBUG
將以下代碼寫在AppDelegate.swift中,寫成全局函數(shù),就可以在其他地方調(diào)用了
// T是動態(tài)類型
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)") // 會打印函數(shù)名
#endif
}
2.Swift中異常處理
如果在調(diào)用系統(tǒng)某一個方法時,該方法最后有一個throws,說明該方法會拋出異常,那么需要對該異常進行處理
Swift中提供了三種處理異常的方式
1.try方式 程序員手動捕捉異常
let pattern = "abc"
do{
let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive)
}catch{
catch:捕捉異常
error:異常的對象
print(error)
}
2.try?方式 系統(tǒng)幫助我們處理異常,如果該方法出現(xiàn)了異常,則該方法返回nil;如果沒有異常,則返回對應(yīng)的對象
let pattern = "abc"
guard let regex = try? NSRegularExpression(pattern: pattern, options: .caseInsensitive) else{
return
}
3.try!方式(不建議,非常危險) 直接告訴系統(tǒng),該方法沒有異常。注意:如果該方法出現(xiàn)了異常,那么程序會報錯(崩潰)
let pattern = "abc"
let regex = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive)
}
