如何正确阅读苹果iOS文档?

15

我在跟随网络上发现的一个教程,其中有一行代码像这样:

var myImage = UIImage(named: "icon")

我理解这行代码的作用,但我并不想去背诵它,当然,我希望能够理解作者是如何想出这段代码的,因此我在UIImage类参考文档中搜索,但在初始化器部分并没有找到与这段代码相关的内容,那么为什么呢?我应该在哪里寻找有关这段代码的更多信息呢?

我阅读了很多网络上的教程、观看了大量的视频教程和阅读了许多书籍,所有的它们都会展示代码,并对其进行充分的解释,但它们没有告诉我如何想出这些代码,如何选择正确的方法来完成任务。

我应该花时间阅读苹果文档而不是所有这些教程吗?是我做错了什么吗?我漏掉了什么吗?我不想记住我读过的所有东西,这并不是我想学开发应用程序的原因,我想知道在哪里寻找合适的代码,我想学习像开发者一样思考。

3个回答

12

有三个有用的书面信息来源:

  1. 示例代码/教程:

    官方文档在你有一定的 Xcode/iOS 编码经验后非常好,但这是一个难以入门的地方。没有什么比查看好的示例代码更好的了。

    示例代码(来自 Apple、Stack Overflow、Ray Wenderlich 或任何其他可以找到的地方)是学习的好方法。即使是编写您正在阅读的教程的人也是从其他人的示例代码开始的。学习 iOS 的第一批人就是从 Apple 的示例代码开始的。

  2. 官方文档:

    要获取官方文档,请在您的代码或 Playground 中单击 option 并选择 UIImage。在弹出窗口中,选择 UIImage 类引用。您要查找的初始化程序就在那里:

    + imageNamed:
    返回与指定文件名相关联的图像对象。

    声明
    SWIFT
    init?(named name: String) -> UIImage

    OBJECTIVE-C
    + (UIImage *)imageNamed:(NSString *)name

    参数
    name 文件的名称。如果这是第一次加载图像,则该方法会在应用程序的主要包中查找具有指定名称的图像。

    返回值 指定文件的图像对象,如果该方法无法找到指定的图像,则返回 nil。

    当然,在 Swift 中,你不会直接通过调用 init 来调用初始化程序。相反,您使用类名,例如在这种情况下使用 UIImagename 是参数的内部名称,并且 ? 告诉您这是一个可能返回 nil 的可失败初始化器,因此实际上此初始化器返回一个 UIImage?。因此,您应该查看 init?(named name: String) -> UIImage 并考虑 UIImage(named: String) -> UIImage?

  3. 头文件:

    在您的代码或 Playground 中键入 UIImage 并单击 Command。这将为 UIImage 带来头文件信息。列出的第一个初始化器是:

    init?(named name: String) -> UIImage // load from main bundle
    

从阅读标题中你可以学到很多东西。我建议经常检查它们。


6

Swift处理初始化方法的方式比较棘手。我建议您免费下载《Swift编程语言》iBook,并阅读有关初始化器的章节。

"init"一词出现在初始化器的声明中,但在调用它时不使用该单词。

声明如下:

init?(named name: String) -> UIImage

问题标记告诉您它是一个“可失败”的初始化程序。与其使用单词init调用它,您应该将类名作为方法名,然后在其后添加参数。
UIImage(named: "name")

对于像 initWithFrame: 这样的初始化方法会更加复杂。在这种情况下,它会去掉 "with" ,并创建一个名为 "frame" 的参数。

我不会在这里覆盖所有内容。(我自己仍在学习细微之处。)就像我说的那样,在 Swift iBook 中阅读有关初始化器的章节。


1

1) 这是“缓存图片加载例程”部分。也许您需要在文档中切换到Swift代码?

2) 教程和代码示例有助于学习语言、平台和良好的实践。您可以用参考讲座来支持它。


在文档中如何切换到Swift代码? - Duncan C
在每个类文档网站的右上角,您会看到“语言:Objective-C Swift Both”。只需选择您需要的即可。 - Maciej Kozieł
在每个类文档网站的右上角?你是指Xcode中的帮助窗口吗?具体来说,它在哪里,靠近什么?我没看到。 - Duncan C
1
我相信@Maciej的意思是在在线文档(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/)中,正如他们所描述的那样,在右上角(大约)有这些按钮。虽然它们很小,但很容易被忽视。 - ABakerSmith
@DuncanC 哦,对了。我没提到那是在线的苹果文档。 - Maciej Kozieł

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接