如何正确阅读 apple iOS 文档?
How can I read apple iOS documentation correctly?
我正在按照我在网上找到的教程进行操作,其中有一行代码如下:
var myImage = UIImage(named: "icon")
我明白这行是做什么的,但我当然不想死记硬背,我想了解作者是如何想出这段代码的,所以我搜索了 UIImage 的文档 class 参考,初始化部分下没有任何东西可以识别这段代码,那为什么呢?在哪里可以找到有关此代码的更多信息?
看了很多网上的教程,看了很多视频教程,看了很多书,无一例外都是给你看代码,解释的很透彻,但是他们别告诉你他们是怎么想出来的,他们是怎么找到适合工作的正确方法的?
我应该花时间阅读 Apple 文档而不是所有这些教程吗?我做错了什么吗?我错过了什么吗?我不想记住我读过的所有东西,这不是我想学习开发应用程序的原因,我想了解在哪里可以找到正确的代码,我想学会像开发人员一样思考。
1) 它在 "Cached Image Loading Routines" 部分。也许您需要切换到文档中的 Swift 代码?
2) 教程和代码示例有助于学习语言、平台和良好实践。你可以用参考讲座备份它。
有 3 个有用的书面信息来源:
示例code/Tutorials:
一旦你在Xcode/iOS中有一些编码经验,官方文档就很棒,但这很难开始的地方。没有什么比查看好的示例代码更好的了。
示例代码(来自 Apple、Stack Overflow、Ray Wenderlich,您可以在任何地方找到它)是一种很好的学习方式。即使是编写您正在阅读的教程的人也是从其他人的示例代码开始的。第一批学习 iOS 的人是从 Apple 的示例代码开始的。
官方文档:
要获取官方文档选项,请在您的代码或 Playground 中单击 UIImage
。在弹出窗口中,select UIImage Class Reference。您正在寻找的初始化程序在那里:
+ imageNamed:
Returns the image object associated with the specified filename.
Declaration
SWIFT
init?(named name: String) -> UIImage
OBJECTIVE-C
+ (UIImage *)imageNamed:(NSString *)name
Parameters
name The name of the file. If this is the first time the image is being loaded, the
method looks for an image with the specified name in the application’s
main bundle.
Return Value The image object for the specified file, or
nil if the method could not find the specified image.
在Swift中,当然不会直接通过调用init
来调用初始化器。相反,您使用 class 名称,在本例中为 UIImage
。 name
是参数的内部名称,?
告诉你这是一个可能 return nil
的可失败初始化器,所以实际上这个初始化器 return一个 UIImage?
。所以你应该看看 init?(named name: String) -> UIImage
并思考 UIImage(named: String) -> UIImage?
.
header 文件:
在您的代码或 Playground 中输入 UIImage
和 Command-点击它。这将显示 UIImage
的 header 文件信息。列出的第一个初始化程序是:
init?(named name: String) -> UIImage // load from main bundle
阅读 header 可以学到很多东西。我建议经常检查它们。
棘手的一点是 Swift 处理初始值设定项的方式。我建议 "buying" 免费 "The Swift Programming Language" iBook 并阅读有关初始化器的章节。
单词"init"出现在初始化器的声明中,但您在调用它时没有使用单词init。
声明为
init?(named name: String) -> UIImage
问号告诉你这是一个"failable"初始化器。
不是用 init 来调用它,而是把 class 名称当作方法名称,然后是参数:
UIImage(named: "name")
像 initWithFrame:
这样的初始化方法变得更加复杂。在这种情况下,它会解析 "with" 并创建一个参数 "frame".
我不会在这里涵盖所有内容。 (我自己仍在学习其中的细微差别。)正如我所说,请阅读 Swift iBook 中有关初始化器的章节。
我正在按照我在网上找到的教程进行操作,其中有一行代码如下:
var myImage = UIImage(named: "icon")
我明白这行是做什么的,但我当然不想死记硬背,我想了解作者是如何想出这段代码的,所以我搜索了 UIImage 的文档 class 参考,初始化部分下没有任何东西可以识别这段代码,那为什么呢?在哪里可以找到有关此代码的更多信息?
看了很多网上的教程,看了很多视频教程,看了很多书,无一例外都是给你看代码,解释的很透彻,但是他们别告诉你他们是怎么想出来的,他们是怎么找到适合工作的正确方法的?
我应该花时间阅读 Apple 文档而不是所有这些教程吗?我做错了什么吗?我错过了什么吗?我不想记住我读过的所有东西,这不是我想学习开发应用程序的原因,我想了解在哪里可以找到正确的代码,我想学会像开发人员一样思考。
1) 它在 "Cached Image Loading Routines" 部分。也许您需要切换到文档中的 Swift 代码?
2) 教程和代码示例有助于学习语言、平台和良好实践。你可以用参考讲座备份它。
有 3 个有用的书面信息来源:
示例code/Tutorials:
一旦你在Xcode/iOS中有一些编码经验,官方文档就很棒,但这很难开始的地方。没有什么比查看好的示例代码更好的了。
示例代码(来自 Apple、Stack Overflow、Ray Wenderlich,您可以在任何地方找到它)是一种很好的学习方式。即使是编写您正在阅读的教程的人也是从其他人的示例代码开始的。第一批学习 iOS 的人是从 Apple 的示例代码开始的。官方文档:
要获取官方文档选项,请在您的代码或 Playground 中单击UIImage
。在弹出窗口中,select UIImage Class Reference。您正在寻找的初始化程序在那里:+ imageNamed:
Returns the image object associated with the specified filename.Declaration
SWIFT
init?(named name: String) -> UIImage
OBJECTIVE-C
+ (UIImage *)imageNamed:(NSString *)name
Parameters
name The name of the file. If this is the first time the image is being loaded, the method looks for an image with the specified name in the application’s main bundle.
Return Value The image object for the specified file, or nil if the method could not find the specified image.在Swift中,当然不会直接通过调用
init
来调用初始化器。相反,您使用 class 名称,在本例中为UIImage
。name
是参数的内部名称,?
告诉你这是一个可能 returnnil
的可失败初始化器,所以实际上这个初始化器 return一个UIImage?
。所以你应该看看init?(named name: String) -> UIImage
并思考UIImage(named: String) -> UIImage?
.header 文件:
在您的代码或 Playground 中输入UIImage
和 Command-点击它。这将显示UIImage
的 header 文件信息。列出的第一个初始化程序是:init?(named name: String) -> UIImage // load from main bundle
阅读 header 可以学到很多东西。我建议经常检查它们。
棘手的一点是 Swift 处理初始值设定项的方式。我建议 "buying" 免费 "The Swift Programming Language" iBook 并阅读有关初始化器的章节。
单词"init"出现在初始化器的声明中,但您在调用它时没有使用单词init。
声明为
init?(named name: String) -> UIImage
问号告诉你这是一个"failable"初始化器。
不是用 init 来调用它,而是把 class 名称当作方法名称,然后是参数:
UIImage(named: "name")
像 initWithFrame:
这样的初始化方法变得更加复杂。在这种情况下,它会解析 "with" 并创建一个参数 "frame".
我不会在这里涵盖所有内容。 (我自己仍在学习其中的细微差别。)正如我所说,请阅读 Swift iBook 中有关初始化器的章节。