目标c常数类

时间:2012-04-22 22:45:14

标签: iphone ios uiviewcontroller const nsobject

我将一些常量编码为几个不同的viewController和NSObject类atm。我工作的其中一个人说我应该将它们放入他们自己的类中(即常量类)

我想知道这种类型的设计的专业人士和内容是什么,以及如果应该做的事情,任何关于如何做的澄清都会很棒。

例如,

我只是创建一个新的NSObject类并在其中包含一堆#defines?那么当我需要使用它们时,我只是继承我的常量类并使用此类中的常量,就像我从其他类中的任何其他方法或变量一样?

myclass.theConstant

任何帮助都会有很大的帮助。

2 个答案:

答案 0 :(得分:11)

将常量与使用它们的东西放在一起。不要创建全局“一切常量”文件。这使代码重用成为一个巨大的问题。例如,如果您发布通知,则需要通知名称字符串。所以你把它放在发布通知的类中:

.h
extern NSString * const MYObjectDidSomethingNotification;

.m
NSString * const MYObjectDidSomethingNotification = @"MYObjectDidSomethingNotification";

常量通常不是方法或定义。它们只是如上所述的恒定全局变量。你应该尽可能避免使用#define,但是有些地方它非常有用(比如常量UIColor对象,否则会很难初始化。)

花一点时间在Apple头文件中查看示例。查看UIWindow.h,UITableViewCell.h和UITableView.h,了解一般如何定义常量的几个很好的例子。

答案 1 :(得分:0)

如果你只有#defines,他们不需要在任何课堂上 - 只需将它们粘贴在自己的.h文件中。