почему этот код не работает для ссылки на const из класса? - PullRequest
0 голосов
/ 16 июня 2011

почему этот код не работает для ссылки на const из класса?

Справочная информация. Я хочу иметь возможность ссылаться на константное значение из класса в подходе типа переменной класса, поскольку именно здесь имеет смысл исходить. Попытка найти лучший способ эффективно предложить классу выставить открытую константу. Я попытался ниже, но это не похоже на работу, я получаю "ОШИБКА: свойство 'titleLablePrefix' не найдено для объекта типа 'DetailAppointCell'"

@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'

Ответы [ 2 ]

2 голосов
/ 16 июня 2011

Вы можете использовать непосредственно как NSString *str = titleLablePrefix;, если ваши внешние связи правильные.

1 голос
/ 16 июня 2011

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

...