刚刚开始使用Objective-C,这可能是一个非常基本的问题。在objective-c中,如何在扩展默认对象(比如UIViewController)时定义常量。然后,所有扩展默认对象的对象都将使用常量值。
执行此操作的一种方法是为对象创建类别,例如......
@implementation UIViewController (Constants)
+ (NSString *)navigationView {
return @"navigationView";
}
+ (NSString *)detailView {
return @"detailView";
}
@end
在类别实现中使用#define
值是否也适用于此???
或者可能有更好的方法来做到这一点?
答案 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