1.swift函數(shù)參數(shù)前面加 "_"的意義
func dateFormattedStringWithFormat(_ format: String, fromDate date: Foundation.Date) -> String {
let formatter = DateFormatter()
formatter.dateFormat = format
return formatter.string(from: date)
}
//函數(shù)調(diào)用
let month = dateFormattedStringWithFormat("MMMM", fromDate: date)
添加下劃線外部調(diào)用不顯示參數(shù)名,試用場景:函數(shù)名書寫"WithFormat"已經(jīng)包含F(xiàn)ormat的意思了
2.為什么使用swiftyJSON
iOS 為我們提供了解析 JSON 的庫 NSJSONSerialization,我們看看使用標準庫的處理方法
let JSONObject: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil)
if let statusesArray = JSONObject as? [AnyObject],
let status = statusesArray[0] as? [String: AnyObject],
let user = status["user"] as? [String: AnyObject],
let username = user["name"] as? String {
// Finally we got the username
}
這就是 SwiftyJSON 這個庫要解決的問題了。我們再來看一下使用 SwiftyJSON 來處理這個解析的代碼
let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string {
//Now you got your value
}
swiftyJSON本身是個結(jié)構(gòu)體 源碼解析 :http://www.itdecent.cn/p/a9bdbd1255b9
3.swift3中open、public、internal、fileprivate 和 private
訪問權(quán)限則依次為:open,public,internal,fileprivate,private
- open:可以被繼承和overide
- public:不可以被繼承和overide,可以被外部訪問
- internal:作用范圍僅限在 entity 所定義的模塊內(nèi)部,其他模塊文件無法訪問
- fileprivate:作用范圍為當前文件,例如(extention)
- private:只允許當前作用域訪問
參考:http://www.itdecent.cn/p/691f6430375b
http://www.itdecent.cn/p/604305a61e57