【发布时间】:2012-12-18 08:01:37
【问题描述】:
我的 MyClass.m 文件中有一个常量,名为:
#define kUDUserHistory @"kUDUserHistory";
没有 ARC 我可以直接使用它,但现在我必须将它复制到第二个变量中然后使用它。如果我尝试直接在 ARC 中使用它,则会显示错误'Expected Expression'。
no-ARC
[[NSUserDefaults standardUserDefaults] setObject:data forKey:kUDUserHistory];
ARC
NSString *key = kUDUserHistory;
[[NSUserDefaults standardUserDefaults] setObject:data forKey:key];
我的具体问题是:
- 为什么在这种情况下我不能直接使用常量?
- 管理常量的最佳方法是什么,尤其是在 ARC 中?
【问题讨论】:
-
与 arc 和 non arc 无关,您的常量声明包含分号,可能是导致问题的原因。
-
Midhun MP 是正确的。如果您以这种方式定义
kUDUserHistory,则无法编译您的“无 ARC”代码。