2015-07-12 30 views
1

这是Alamofire/Manager.swift一个代码块:这个块在Swift - Alamofire中意味着什么?

  • 这是一个名为 “公共类管理器”

public static let sharedInstance: Manager = { 
    let configuration: NSURLSessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration() 
    configuration.HTTPAdditionalHeaders = Manager.defaultHTTPHeaders 

    return Manager(configuration: configuration) 
}() 

显然类中,这是“让某事等于封闭”,但我没有得到的是该行末尾的“()”是什么意思?

推迟执行代码?怎么样? (在我看来,执行不会延迟,因为它具有“()”?我想知道为什么这不会导致存储器循环的存在?它会返回Manger本身,并且返回的新实例也会做同样的,返回一个新的自...

为什么不能一键字“懒”?

我有一种奇怪的感觉,我似乎这种用法别的地方了。我正在学习斯威夫特现在是60天了,我是快还是慢?如何成为一名iOS开发者?(我的意思是如何成为一名真正的开发者,而不是注册程序)

现在我有点困惑并且阅读所有的源代码我可以得到的代码有时我感觉官方文档和Xcode很糟糕,我不知道如何阅读源代码从头开始。任何提示和建议?

+0

回复:学习iOS开发 - 斯坦福大学有**免费**(和质量)的视频课程学习[Swift](https://itunes.apple.com/us/course/developing-ios-8-apps-swift/id961180099)和[Objective C](https://itunes.apple.com/en/course/developers-ios-7-apps-for/id733644550) –

+0

@IslamQ。我已经参加了#斯坦福大学的课程,我认为这是相对容易的..另一方面,我遇到了无数问题(当我学习Python时没有问题),包括如何设计应用程序的图标,以及太棒吧物品。 &自定义视图和动画。 how 2阅读Xcode 6.3中不存在的旧API的官方指南。无奈。 – lastcc

+0

然后你检查了[raywenderlich.com](http://raywenderlich.com)和其他教程网站来学习不同的技巧? 此外,我发现真正有用的是通过实际创建一个应用程序...你会学到什么与你的需求在旅途中相关... –

回答

0

这将初始化sharedInstance并返回闭包的结果(最终没有parens它只会将它初始化为闭包本身)它是一个初始化变量的标准语法,对于简单表达式而言初始化过于复杂。在这个多语句是必需的,以便HTTPAdditionalHeaders可以初始化。

+0

所以const sharedInstance将是一个新的Manager类的实例。那没问题。 – lastcc

+0

但是Manger的新实例也会有这个名为sharedInstance的属性,它将成为Manger的一个新实例。这个实例也会有sharedInstance,它会有一个新的实例..这不会结束。 – lastcc

+0

谢谢你。 ..我想我应该尝试先读取所有源代码文件并使用调试工具。 – lastcc

0

好的,我犯了一个错误。关键在于sharedInstance使用了一个关键词“static”这很常见,但是在我最熟悉的python中,不要使用这个关键词。

根据官方指南:

“你也可以定义属于类型本身,而不是该类型的任何一个实例属性。无论您创建多少个该类型的实例,只会有这些属性的一个副本。这些属性称为类型属性。“

Apple Inc.”The Swift Programming Language“。 iBooks的。 https://itun.es/cn/jEUH0.l