0

为什么这段代码不能用于从类中引用 const?

背景:我希望能够在类变量类型方法中从类中引用常量值,因为这是有意义的来源。试图找到有效地让类提供暴露常量的最佳方法。我尝试了以下方法,但它似乎不起作用,我得到“错误:在'DetailedApppointCell'类型的对象上找不到属性'titleLablePrefix'”

@interface DetailedAppointCell : UITableViewCell {
}
  extern NSString * const titleLablePrefix;
@end

#import "DetailedAppointCell.h"
@implementation DetailedAppointCell
  NSString * const titleLablePrefix = @"TITLE: ";
@end

// usage from another class which imports
NSString *str = DetailedAppointCell.titleLablePrefix;  // ERROR: property 'titleLablePrefix' not found on object of type 'DetailedAppointCell'
4

2 回答 2

2

您可以直接使用,就NSString *str = titleLablePrefix; 好像您的外部链接是正确的一样。

于 2011-06-16T05:28:33.093 回答
1

Objective C 不支持类变量/常量,但它支持类方法。您可以使用以下解决方案:

@interface DetailedAppointCell : UITableViewCell {
}
+ (NSString*)titleLablePrefix;
@end

#import "DetailedAppointCell.h"
@implementation DetailedAppointCell
+ (NSString*)titleLablePrefix {
  return @"TITLE: ";
}
@end

// usage from another class which imports
NSString *str = [DetailedAppointCell titleLablePrefix];

ps 点语法用于实例属性。您可以在此处了解有关 Objective C 的更多信息:http: //developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocObjectsClasses.html

于 2011-06-16T06:16:35.917 回答