我正在按照我在网上找到的教程,有这样的代码行:
var myImage = UIImage(named: "icon")
我明白这行是做什么的,但我当然不想记住它,我想了解作者是如何想出这段代码的,所以我搜索文档中的UIImage类引用,什么都没有在初始化程序部分下识别此代码,为什么?我在哪里可以找到有关此代码的更多信息?
我阅读了很多在网上找到的教程,观看了很多视频教程,阅读了很多书,所有这些都没有例外,他们会向你展示代码,他们会全面解释,但他们不会# 39;告诉你他们是如何想出来的,他们是如何为正确的工作找到合适的方法的?
我是否应该花时间阅读Apple文档而不是所有这些教程?有什么我做错了吗?我错过了什么吗?我不想记住我读过的所有内容,这不是我想学习开发应用程序的原因,我想知道在哪里寻找合适的代码,我想要学习如何思考显影剂。
答案 0 :(得分:11)
有3种有用的书面信息来源:
示例代码/教程:
一旦您在Xcode / iOS中有一些编码经验,官方文档就很棒,但这是一个很难开始的地方。没有什么能比看好样本代码了。
示例代码(来自Apple,来自Stack Overflow,来自Ray Wenderlich,来自任何你能找到它的代码)是一种很好的学习方式。甚至编写您正在阅读的教程的人也开始使用其他人的示例代码。第一批学习iOS的人开始使用Apple的示例代码。
官方文件:
要获取官方文档选项,请单击代码或Playground中的UIImage
。在弹出窗口中,选择 UIImage类参考。您正在寻找的初始化程序是:
+ imageNamed:
返回与指定文件名关联的图像对象。声明
SWIFT
init?(named name: String) -> UIImage
目标-C
+ (UIImage *)imageNamed:(NSString *)name
参数
name 文件的名称。如果这是第一次加载图像,则 method查找应用程序中具有指定名称的图像 主要包。
返回值指定文件的图像对象,或 如果方法找不到指定的图像,则为零。
当然,在Swift中,您不能通过调用init
直接调用初始值设定项。相反,在这种情况下,您使用类名UIImage
。 name
是参数的内部名称,?
告诉您这是一个可以返回nil
的可用初始值设定项,因此实际上此初始值设定项返回UIImage?
。因此,您应该查看init?(named name: String) -> UIImage
并考虑UIImage(named: String) -> UIImage?
。
标题文件:
在代码或Playground中键入UIImage
,然后单击命令。这将显示UIImage
的头文件信息。列出的第一个初始化程序是:
init?(named name: String) -> UIImage // load from main bundle
通过阅读标题,您可以学到很多东西。我建议经常检查它们。
答案 1 :(得分:5)
棘手的一点是Swift处理初始化器的方式。我建议“购买”免费的“The Swift Programming Language”iBook并阅读关于初始化器的章节。
“init”一词出现在初始化程序的声明中,但在调用它时不使用单词init。
宣言是
init?(named name: String) -> UIImage
问号告诉您它是一个“可用的”初始化程序。
不是用单词init调用它,而是将类名称放在方法名称和以下参数之后:
UIImage(named: "name")
initWithFrame:
等初始化方法变得更加复杂。在这种情况下,它会解析“with”,并创建一个参数“frame”。
我不打算在这里介绍一切。 (我自己也在学习细微差别。)就像我说的那样,阅读Swift iBook中关于初始化器的章节。
答案 2 :(得分:1)
1)它是在"缓存图像加载例程"部分。也许您需要在文档中切换到Swift代码?
2)教程和代码示例有助于学习语言,平台和良好实践。您可以使用参考讲座进行备份。