Swift遇到的问题总结(更新ing)

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

你可能感兴趣的:(Swift遇到的问题总结(更新ing))