在 Objective C 中存储资源文件名的正确方法

发布于 2024-10-29 20:09:09 字数 444 浏览 0 评论 0原文

您建议以什么方式存储资源的文件名(例如图像) 我使用 #define 结构将它们存储为常量,但我认为它非常难看,因为如果导入其标头,这些 #define 就会在类外部可见。

据我了解,存储文件名的方法有几种:

  • #define - 我
  • 在代码中描述了硬编码文件名上面的缺点(例如 [UIImage imageNamed:@"test.png"]我认为这种方式很难
  • 用字典维护良好的代码属性文件(同样,我们需要将键存储在代码中的某个位置) ....

我确信有更好的方法可以做到这一点。可以分享一下你用什么方法吗?

实际上我对数字private常量有同样的问题。例如自定义视图等的按钮原点......这不应该在课堂外可见。

what way would you recommend to store filenames of resources (e.g. images)
I use #define structures to store them as constants but I think it is quite ugly as those #define became visible outside class if you import its header.

As I understand there are few ways to store filenames:

  • #define - I described cons above
  • hardcoded filename in the code (like [UIImage imageNamed:@"test.png"] I think this way make difficult to maintain nice code
  • property file with dictionary (again, we need to store keys somewhere in the code)
    ....

I'm sure there is a nicer way to do that. Can you share what way do you use?

Actually I have same question for numeric private constants. e.g. button origin for custom view etc.. which shouldn't be visible outside class.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情话墙 2024-11-05 20:09:09

我认为,如果对文件只有一个引用,并且引用的上下文(或附加注释)使文件名的作用显而易见,那么对文件名进行硬编码并不总是不可接受的。

由于类型检查问题,我很少推荐 #define 作为常量。在 Objective C 中,常量可以这样定义

NSString * const kSomeImageFilename = @"myImage.png";

I think it isn't always unacceptable to hard code the filename, if there's one single reference to the file, and the context of the reference (or attached comment) makes it obvious what the role of the filename is.

I would rarely recommend #define for a constant, because of type-checking issues. In Objective C a constant can be defined with

NSString * const kSomeImageFilename = @"myImage.png";
清风挽心 2024-11-05 20:09:09

在具有大量资源的项目中,我的团队练习将资源放入 plist 中。在这种情况下,资源文件名的修改只需要在 plist 中进行适当的更改。然后通过键从 plist 中检索资源名称。

In projects with large number of resources my team practices placing the resources in a plist. Modifications of resource file names in this case only require an appropriate change within the plist. The resource names are then retrieved by key from the plist.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文