我的MyClass.m文件中有一个名为:
的常量#define kUDUserHistory @"kUDUserHistory";
没有ARC,我可以直接使用它,但现在我必须将它复制到第二个变量然后使用它。如果我尝试在ARC中直接使用它,则会显示错误'预期表达式'
否-ARC
[[NSUserDefaults standardUserDefaults] setObject:data forKey:kUDUserHistory];
ARC
NSString *key = kUDUserHistory;
[[NSUserDefaults standardUserDefaults] setObject:data forKey:key];
我的具体问题是:
答案 0 :(得分:6)
#define kUDUserHistory @"kUDUserHistory";
应该是:
#define kUDUserHistory @"kUDUserHistory"
您的回答:
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"kUDUserHistory";];
首先将其传递给NSString
:
NSString *key = @"kUDUserHistory";;
这就是为什么它有效。
答案 1 :(得分:0)
您也可以使用
<。>文件中的
extern NSString * const kUDUserHistory;
<。>文件中的
NSString * const kUDUserHistory = @“kUDUserHistory”;