我已经看到了两种创建全局变量的方法,有什么区别,你什么时候使用每种方法?
//.h
extern NSString * const MyConstant;
//.m
NSString * const MyConstant = @"MyConstant";和
//.h
extern NSString *MyConstant;
//.m
NSString *MyConstant = @"MyConstant";发布于 2011-09-04 06:24:34
前者是常量的理想选择,因为它所指向的字符串不能改变:
//.h
extern NSString * const MyConstant;
//.m
NSString * const MyConstant = @"MyConstant";
...
MyConstant = @"Bad Stuff"; // << YAY! compiler error
and
//.h
extern NSString *MyConstant;
//.m
NSString *MyConstant = @"MyConstant";
...
MyConstant = @"Bad Stuff"; // << NO compiler error =\简而言之,默认情况下使用const (前者)。如果你试图改变它,编译器会让你知道--然后你就可以决定这是不是一个错误,或者它所指向的对象是否可能改变。这是一个很好的保护措施,避免了很多bug/令人头疼。
另一种变化是针对一个值:
extern int MyInteger; // << value may be changed anytime
extern const int MyInteger; // << a proper constanthttps://stackoverflow.com/questions/7296197
复制相似问题