我在使用下面的代碼時遇到的問題是,只有在調用secondViewController中的viewDidLoad方法時,纔會更新totalScore。因此,如果我連續兩次按下addOne按鈕,retrieveingString同時都是相同的,所以它只會將一個添加到相同的現有值,因爲它沒有在secondViewController中更新。如何管理每個addOne按鈕被firstViewController鍵/值更新字符串值
firstViewController按時間來更新totalScore在secondViewController:
-(void)saveString:(NSString *)myString {
[[NSUserDefaults standardUserDefaults] setObject:myString forKey:@"firstScore"];
}
-(NSString *)retrieveString {
NSString *recoveredString = [[NSUserDefaults standardUserDefaults]objectForKey:@"totalScore"];
return recoveredString;
}
-(IBAction) addOne {
NSString *totalScore = [self retrieveString];
NSInteger totalScoreInt = [totalScore intValue];
NSInteger newScore = totalScoreInt+1;
NSString *newScoreString = [NSString stringWithFormat:@"%i", newScore];
[self saveString:newScoreString];
}
secondViewController:
-(void)saveString:(NSString *)myString {
[[NSUserDefaults standardUserDefaults] setObject:myString forKey:@"totalScore"];
}
-(NSString *)retrieveString {
NSString *recoveredString = [[NSUserDefaults standardUserDefaults]objectForKey:@"firstScore"];
return recoveredString;
}
-(void) viewDidLoad {
NSString *firstScore = [self retrieveString];
NSInteger firstScoreInt = [firstScore intValue];
NSInteger newTotalScore = firstScoreInt+1;
NSString *newTotalScoreString = [NSString stringWithFormat:@"%i", newTotalScore];
[self saveString:newTotalScoreString];
}
我希望我已經解釋了這個問題是可以理解的,所以也許有人可以幫我解決這個問題。
就是這樣!非常感謝! – Peter