1

で奇妙な動作を経験していNSUserDefaultsます。私は最初、AppDelegate.mのユーザーデフォルトに配列を格納しています:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *weekdayIDs = [defaults objectForKey:@"weekdayIDs"];

if (weekdayIDs == nil) {
weekdayIDs = [NSArray arrayWithObjects:@"su", @"mo", @"tu", @"we", @"th", @"fr", @"sa", nil];
[defaults setObject:weekdayIDs forKey:@"weekdayIDs"];
}

[defaults synchronize];

別のビューコントローラーContentViewController.mで、配列を取得したいと思います。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *weekdayIDs = [defaults objectForKey:@"weekdayIDs"];

しかし、オブジェクトのない配列を取得しますが、そのcount == 7。私も使用arrayForKey:しましたが、同じ結果になりました。ブレークポイントからスクリーンショットを追加しました。

ここに画像の説明を入力してください

私は定期的に使用してNSUserDefaultsいますが、現在はこれに少しこだわっています。それはおそらくばかげた間違いです、誰かが助けてくれますか?

どうもありがとう!

- アップデート:

また、そもそもNSArrayの初期化に問題があるかもしれないと思いましたが、そのオブジェクトを手動で作成したものに置き換えてもNSString *dwid_su = [NSString stringWithString:@"su"];機能しませんでした。

4

1 に答える 1

2

コードは完全に機能します。

配列の説明を印刷するだけで、必要なものが表示されます。

weekdayIDs変数を右クリックして、[平日IDの説明を印刷]を選択します

またはlldbデバッガコンソールから使用しますpo weekdayIDs

またNSLog(@"%@", weekdayIDs);

ここに結果があります。

ここに画像の説明を入力してください

于 2013-03-25T21:48:22.993 に答える