所以iOS docs只描述了所有提供的框架的功能,但是我可以在任何地方实际查看CODE以了解如何实现此功能吗?
它以二进制形式发布,因此所有可读的都是标题。我只是厌倦了阅读关于&#34的教程;用它来做那个"和"看看这个功能"没有任何实质内容我可以看看
答案 0 :(得分:1)
答案是否定的。
拥有特定公共API的重点是隐藏底层框架/操作系统如何执行它们所做的任何事情的细节。这至少有几个实际目的:
首先,它保护了代码可能包含的任何Apple商业机密。
其次,它阻止第三方程序员针对API的特定实现而不是API的公共合同进行编程。例如,让我们假设在UIKit中有一个名为UIWidget的类。 UIWidget的公共API说你可以给它一个数字(一个NSUInteger,比方说),它会显示一个基于该数字的颜色。公共API对它将选择的颜色没有任何承诺 - 只是它对于给定的数字始终是相同的颜色。但是,你有UIWidget的源代码,并且可以看到它总是为偶数选择绿色,为奇数选择红色。然后,基于UIWidget将始终为偶数提供绿色的假设,您实现整个应用程序,即使公共API从未承诺过。然后Apple发布了带有更新的UIWidget的iOS 12。公共API仍然表示它将为特定数字提供特定颜色,但无论出于何种原因,Apple决定更改实现,使偶数显示蓝色。您的应用现已被破坏,因为您做出的假设不是基于公共API合同。
因此,虽然看到iOS源代码可能具有教育意义,但有很好的理由不公开。有大量的iOS应用程序源代码可以说明你想要做什么。