0

mySwitchCollection を作成しました。そこから boolForKey 値を取得して、ビューのスイッチをオンまたはオフに設定する必要があります。これはコードですが、[defs boolForKey:arrayCostanti[i]]; に問題があります。

arrayCostanti は静的な NSString *arrayCostanti[] = {k3D,kAnimazione}; です。

arrayCostanti[i] 値を boolForKey にプッシュするにはどうすればよいですか?

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    //Leggo dal defs gli stati di ogni switch e gli setto lo stato
    //NSUserDefaults
    NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];

    //mySwitch1.on = [defs boolForKey: k3D];

    //ciclo for per settare tutti gli stati degli switch che ho raccolto nel mySwitchCollection
    for (int i = 0; i <= 45; i++){
     mySwitchCollection[i].on = [defs boolForKey:arrayCostanti[i]];
    }
}
4

1 に答える 1

0

正しく保管していることも確認する必要があります。

'k3D'がキーに定義されたNSStringであると仮定します。

// saving
mySwitch1.on = YES;

[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:mySwitch1.on] forKey:k3D];

// retrieving

BOOL switchOn = [[NSUserDefaults standardUserDefaults] boolForKey:k3D];

覚えておくべき重要なことは、NSUserDefaultsはメインオブジェクトタイプのみを格納でき、BOOLはそれらの1つではないということです。したがって、最初にBOOLをNSNumberに設定していることを確認してください。そうすれば、うまくいくはずです。

于 2012-06-27T13:35:30.730 に答える