getter メソッドのプリプロセッサ定義ステートメントを作成しました
#define GetNSStringDefaultForPropertyWithNameAndKey(propertyName, propertyKey) - (NSString *)propertyName { return [[NSUserDefaults standardUserDefaults] objectForKey:_userDefaultsKey][propertyKey]; }
しかし、setPropertyName に propertyName 引数を変更する必要があるため、setter メソッドに対して同じことを行うと行き詰まりました。
この種の引数の変更を行う方法はありますか。
編集私は、両方の定義がコンパイラによって生成された getter/setter メソッドを上書きする必要があると言うべきでした。しかし、Matthias が正しければ、唯一の方法は、問題のプロパティの大文字バージョンをそのように提供することです。
#define SetNSStringDefaultForPropertyWithNameAndKey(PropertyName, propertyKey) - (void)set ## PropertyName:(NSString *)newValue \
{ \
self.userDefaults[propertyKey] = newValue; \
[self updateUserDefaults]; \
} \