Swift遇到的问题总结(更新ing)
2017-03-27 本文已影响5人
刘泽要长肉
1.swift函数参数前面加 "_"的意义
func dateFormattedStringWithFormat(_ format: String, fromDate date: Foundation.Date) -> String {
let formatter = DateFormatter()
formatter.dateFormat = format
return formatter.string(from: date)
}
//函数调用
let month = dateFormattedStringWithFormat("MMMM", fromDate: date)
添加下划线外部调用不显示参数名,试用场景:函数名书写"WithFormat"已经包含Format的意思了
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本身是个结构体 源码解析 :http://www.jianshu.com/p/a9bdbd1255b9
3.swift3中open、public、internal、fileprivate 和 private
访问权限则依次为:open,public,internal,fileprivate,private
- open:可以被继承和overide
- public:不可以被继承和overide,可以被外部访问
- internal:作用范围仅限在 entity 所定义的模块内部,其他模块文件无法访问
- fileprivate:作用范围为当前文件,例如(extention)
- private:只允许当前作用域访问
参考:http://www.jianshu.com/p/691f6430375b
http://www.jianshu.com/p/604305a61e57