1

私は UISwitch を持っています。とりわけ、魔女は UITextfield を無効にします。NSUserDefaults を使用する場合、現在の状態 (オン/オフ) を記憶するようにスイッチを管理します

 [[NSUserDefaults standardUserDefaults]
     setBool:[sender isOn]
     forKey:MyPrefKey];

しかし、テキストファイルが有効になったことをどのように覚えていますか? 「setBool」の使用は論外であり、setObject の使用方法がわかりません。

 [[NSUserDefaults standardUserDefaults]
         setObject:[textField setEnabled:NO]
         forKey:MyPrefKey];

動作しません。

4

1 に答える 1

1

なぜsetBool問題外の使用ですか?

どちらでも動作するはずですが、ユーザーのデフォルトを同期することを忘れないでください:

[[NSUserDefaults standardUserDefaults] synchronize];

[textField isEnabled]また、2 番目の例ではエラーが発生しました。フラグをではなく に設定する必要がありsetEnabled:NOます。これは void を返すためです。また、プリミティブを渡そうとしています。オブジェクトとして保存するにBOOLは、にラップする必要がありますNSNumber

[[NSUserDefaults standardUserDefaults]
         setObject:[NSNumber numberWithBool:[textField isEnabled]]
         forKey:MyPrefKey];
[[NSUserDefaults standardUserDefaults] synchronize];
于 2012-08-15T06:44:51.340 に答える