gpt4 book ai didi

ios - 文件名匹配 initWithNibName 的规则是什么?

转载 作者:可可西里 更新时间:2023-11-01 03:33:57 35 4
gpt4 key购买 nike

iOS 上的 initWithNibName 很聪明:它会自动为 iPad 而不是 iPhone 加载不同的 NIB(尽管很多人不知道这一点 - 它没有记录在 UIViewController.initWithNibName 中!)。

但是它还能做什么呢?我为此找到的唯一 Apple 文档解释说:

  1. 它将查找并查找名称末尾带有 ~ipad 或 ~iphone 的文件
  2. Apple 暗示它遵循自动图像文件名匹配规则

但是没有图像匹配规则的链接,我也找不到任何明确的文档:(。

规则可能包括:“如果将 @2x 放在文件名的末尾,你会得到一个不同的 Retina NIB”(我不知道这是否有效)。

我真正要寻找的是使用了哪些规则的列表。如果我可以更多地使用他们的智能名称匹配(例如,如果他们有“加载横向 Nib 与加载纵向 Nib ”),它将节省大量硬编码 - 在我编写的几乎每个应用程序中都重复进行 -

最佳答案

为了回答您的(主要)问题,这些是 initWithNibName 中文件名匹配的规则:

...However, if you do not specify a nib name, and do not override the loadView method in your custom subclass, the view controller searches for a nib file using other means. Specifically, it looks for a nib file with an appropriate name (without the .nib extension) and loads that nib file whenever its view is requested. Specifically, it looks (in order) for a nib file with one of the following names:

  1. If the view controller class name ends with the word “Controller”, as in MyViewController, it looks for a nib file whose name matches the class name without the word “Controller”, as in MyView.nib.
  2. It looks for a nib file whose name matches the name of the view controller class. For example, if the class name is MyViewController, it looks for a MyViewController.nib file.

From UIViewController's documentation under nibName

但还有更多...实际上 NSBundle 有一些非常聪明的规则来定位其中的资源。 Here is the documentation page describing these rules(请参阅:iOS 中的设备特定资源)。

这给我们带来了 to this page描述了所有可应用于捆绑资源的修饰符(和基本模式)(我相信这是您提到的关于图像文件名匹配的链接)。

关于ios - 文件名匹配 initWithNibName 的规则是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10482944/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com