【发布时间】:2011-01-11 14:45:23
【问题描述】:
在我的 Objective-C 项目中,我有一个这样的协议:
@protocol MyProtocol
-(id) get:(NSString *) key;
-(void) set:(NSString *) key withValue:(id) value;
-(NSValue *) getSize;
-(void) setSize:(NSValue *) value;
-(NSValue *) getBounds;
-(void) setBounds:(NSValue *) value;
@end
OBJC_EXPORT const NSString *MYPROTOCOL_SIZE;
OBJC_EXPORT const NSString *MYPROTOCOL_BOUNDS;
基本上,那些特定的方法(getSize、getBounds、setSize、setBounds)应该是应该分别存储在MYPROTOCOL_SIZE和MYPROTOCOL_BOUNDS中的值。
但是,我找不到通过连接其他方法的结果来设置这些常量字符串的有效方法,因为当我尝试直接设置它们时,它给了我错误:initializer element is not constant。有没有办法可以保证对象总是被初始化。 (例如在 load 类方法中),而无需在我的程序运行时手动调用代码?
【问题讨论】:
-
或许您应该用 Google 搜索一下 C 编程语言中使用的
const关键字的含义?
标签: objective-c nsstring constants protocols