Java で静的変数を初期化する必要がある場合は、次のようにすることができます。
public class MyClass {
private static Object someStaticObject;
static {
// initialize someStaticObject here
}
...
Cocoa で同じことを行うにはどうすればよいでしょうか。
具体的には、ここに私が求めているものがあります: 私は多数のユーザー設定を持つアプリを持っています。次のように、すべてのメソッドが静的である 1 つのクラスからこれらすべての設定を管理したいと思います。
@implementation Preferences
+(void)setMotion:(BOOL)isMotion {
[[NSUserDefaults standardUserDefaults] setBool:isMotion forKey:keyIsMotion];
[[NSUserDefaults standardUserDefaults] synchronize];
}
+(BOOL)isMotion {
[[NSUserDefaults standardUserDefaults] boolForKey:keyIsMotion];
}
コードのどこにでも簡単にアクセスして設定できるようにするには、次のようにします。
[Preferences setMotion:TRUE];
また
if ([Preferences isMotion]) {
...
数十の静的メソッドを計画していることを考えると、静的変数のデフォルトを次のように定義したいと考えています。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
上記の私のコードは次のようになります。
+(void)setMotion:(BOOL)isMotion {
[defaults setBool:isMotion forKey:keyIsMotion];
[defaults synchronize];
}
+(BOOL)isMotion {
[defaults boolForKey:keyIsMotion];
}
しかし、それを達成する方法がわかりません。