Objective-C:使用常量值扩展默认对象

时间:2012-04-26 10:37:40

标签: objective-c constants categories

刚刚开始使用Objective-C,这可能是一个非常基本的问题。在objective-c中,如何在扩展默认对象(比如UIViewController)时定义常量。然后,所有扩展默认对象的对象都将使用常量值。

执行此操作的一种方法是为对象创建类别,例如......

@implementation UIViewController (Constants)

+ (NSString *)navigationView {
    return @"navigationView";
}
+ (NSString *)detailView {
    return @"detailView";
}

@end

在类别实现中使用#define值是否也适用于此??? 或者可能有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

没关系。这将按预期工作,虽然我建议使用更合适的名称(选择器navigationView表示你将获得一个实际的视图,而不是一个名称中的字符串)。

如果您愿意,可以使用#defines - 只需在头文件中直接定义它们即可。或者你可以定义字符串常量,例如

// in the header

extern NSString* const NAVIGATION_VIEW_NAME; // declaration

// in a .m file somewhere

NSString* const NAVIGATION_VIEW_NAME = @"navigationView"; // definition