这是Alamofire / Manager.swift中的代码块:
public static let sharedInstance: Manager = {
let configuration: NSURLSessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.HTTPAdditionalHeaders = Manager.defaultHTTPHeaders
return Manager(configuration: configuration)
}()
显然,这是“让一些东西等于封闭”,但我不知道的是,行尾的“()”是什么意思?
推迟执行代码?怎么样? (在我看来,执行不会延迟,因为它有“()”?我想知道为什么这不会导致现有的内存圈?它返回Manger本身,返回的新实例也将做同样的事情,回归新的自我...
为什么关键词“懒惰”?
我有一种奇怪的感觉,我似乎也在其他地方使用过这种用法。我现在正在学习斯威夫特60天。我快还是慢?如何成为iOS开发人员?(我的意思是如何成为一个真正的开发人员,而不是注册该程序)
现在我有点困惑并且阅读了我能得到的所有源代码。有时我觉得官方文档和Xcode很糟糕,我不知道如何阅读源代码。有什么提示和建议吗?
答案 0 :(得分:0)
这用闭包的结果初始化HTTPAdditionalHeaders
(最后没有parens它只是将它初始化为闭包本身)它是初始化变量的标准语法,初始化器太复杂了简单的表达。在此,需要多个语句才能初始化{{1}}。
答案 1 :(得分:0)
好的,我犯了一个错误。诀窍在于sharedInstance使用了一个关键词" static"这很常见,但在我最熟悉的python中,请不要使用这个关键词。
根据官方指南:
“您还可以定义属于该类型本身的属性,而不是该类型的任何一个实例。无论您创建的该类型的实例有多少,这些属性都只会有一个副本。这些属性称为类型属性。“
Apple Inc.“Swift编程语言”。 iBooks的。 https://itun.es/cn/jEUH0.l答案 2 :(得分:0)