我为 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]; \
} \