【发布时间】:2013-06-05 15:32:16
【问题描述】:
我为 getter 方法编写了预处理器定义语句
#define GetNSStringDefaultForPropertyWithNameAndKey(propertyName, propertyKey) - (NSString *)propertyName { return [[NSUserDefaults standardUserDefaults] objectForKey:_userDefaultsKey][propertyKey]; }
但是在对 setter 方法执行相同操作时卡住了,因为我必须将 propertyName 参数修改为 setPropertyName。
有没有办法进行这种参数修改。
编辑 我应该说这两个定义都应该覆盖编译器生成的 getter/setter 方法。 但如果我猜对了马蒂亚斯,唯一的办法就是像这样提供所讨论财产的大写版本。
#define SetNSStringDefaultForPropertyWithNameAndKey(PropertyName, propertyKey) - (void)set ## PropertyName:(NSString *)newValue \
{ \
self.userDefaults[propertyKey] = newValue; \
[self updateUserDefaults]; \
} \
【问题讨论】:
-
如果您编辑问题中的代码,请以实际可行的方式进行。您不能像这样将#defines 放在多行上
标签: ios preprocessor