调用NSMakeRange方法时出现此错误。我做错了什么?
#import <Foundation/Foundation.h>
//
NSRange range1 = NSMakeRange(12, 5);
答案 0 :(得分:5)
在函数或方法之外初始化变量时,只能使用常量值:不能执行任何代码。问题在于您尝试执行NSMakeRange
。 (参见this question的答案,类似)。
解决方案是声明range1
但不为其分配任何值,然后实现设置值的+initialize
方法。 initialize
是在类中调用任何其他方法之前调用的类方法。
+ (void)initialize {
if (range1 == NULL) {
range1 = NSMakeRange(12, 5);
}
}
答案 1 :(得分:0)
initializer-element-is-not-a-compile-time-constant
错误。您可以在@implementation之前声明变量,以便每个方法都可以访问它。并且您可以在方法中声明变量,以便它可以在该方法中可见。