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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,328评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,180评论 25 709
  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 5,422评论 0 4
  • 读完Pet第一章个第二章,说实话,对我的观念是有冲击呢。特别是看完第二章之后,下面我来谈谈我的一些感受和困惑。...
    黑丫丫阅读 2,910评论 0 0
  • 不要选择: 1. 缺钱的人--即为多挣些钱不顾及所在公司利益。 2. 不愿意承担风险的人。 3. 能力不够的好兄弟...
    双儿的120阅读 3,567评论 0 3