NSUserDefaults にいくつかの日付を保存しようとしています (毎日、ユーザーが日付を入力し、体重などを入力して保存します)。どうすればいいのかわかりません。私はかなり長い間、これに対する解決策を探していました。代わりに plists を試す必要がありますか? ありがとう
質問する
1117 次
2 に答える
1
どうすればいいのかわかりません。
これは、あなたがこれを読んでいないことを意味します。これは罪です。
[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"CurrentDate"];
[[NSUserDefaults standardUserDefaults] synchronize];
于 2012-10-26T17:48:51.997 に答える
0
大量のデータが必要な場合は、nsuserdefaults 以外のものを使用することをお勧めします。この場合、plist などのファイルは問題ない可能性があります。nsuserdefaults を使用したい場合は、ここに簡単な例を示します。
- (void) viewDidAppear:(BOOL)animated {
//check if nsuserdefaults has the member value set and if not show them the "login" screen
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *member = [defaults stringForKey:@"member"];
if (![member isEqualToString:@"ValidMember"]) {
...do some stuff
}
nsuserdefaults への書き込みはこれを使用します
if ([trimMemberLastName caseInsensitiveCompare:[_memberList objectForKey:memberNumber]] == NSOrderedSame){
//set a value in nsuserdefaults so we never have to check this
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"ValidMember" forKey:@"member"];
[defaults synchronize];
return YES;
}
また、plist ファイルの例を次に示します。
- (NSString *) getFilePath {
//get filepath
NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"saved.plist"];
}
- (void) saveData { //データを保存 NSArray *value = [[NSArray alloc] initWithObjects:[myTextField text],[myDatePicker date], nil]; if ([value writeToFile:[self getFilePath] atomically:YES]) { NSLog(@"ファイルを書きました"); } NSLog(@"value = %@", value.description);
}
- (void) loadData { // データのロード NSString *myPath = [self getFilePath]; NSLog(@"myPath = %@", myPath.description); BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPath]; if (fileExists) { NSArray *values = [[NSArray alloc] initWithContentsOfFile:myPath]; myTextField.text = [values objectAtIndex:0]; NSLog(@"myTextField = %@", [values objectAtIndex:0]); myDatePicker.date = [values objectAtIndex:1]; NSLog(@"myDatePkcer = %@", [values objectAtIndex:1]); } }
于 2012-10-26T18:07:46.503 に答える