-2

我的 MyClass.m 文件中有一个常量,名为:

#define kUDUserHistory              @"kUDUserHistory";

没有 ARC 我可以直接使用它,但现在我必须将它复制到第二个变量中然后使用它。如果我尝试直接在 ARC 中使用它,则会显示错误'Expected Expression'
无弧

[[NSUserDefaults standardUserDefaults] setObject:data forKey:kUDUserHistory];


NSString *key = kUDUserHistory;
[[NSUserDefaults standardUserDefaults] setObject:data forKey:key];

我的具体问题是:

  • 为什么在这种情况下我不能直接使用常量?
  • 管理常量的最佳方法是什么,尤其是在 ARC 中?
4

2 回答 2

6
#define kUDUserHistory              @"kUDUserHistory";

应该:

#define kUDUserHistory              @"kUDUserHistory"

对于你的答案:

[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"kUDUserHistory";];

首先将其传递给NSString

NSString *key = @"kUDUserHistory";;

这就是它起作用的原因。

于 2012-12-18T08:03:02.910 回答
0

你也可以使用

在 .h 文件中

extern NSString * const kUDUserHistory;

在 .m 文件中

NSString * const kUDUserHistory = @"kUDUserHistory";

于 2012-12-18T08:04:42.263 回答