Tôi sử dụng NSUserDefaults trong cài đặt của mình. Ứng dụng hoạt động tốt ngay cả khi tôi bấm phím chủ cho phép ứng dụng vào nền, nhưng nếu tôi giết ứng dụng, dữ liệu lưu trong NSUserDefaults sẽ bị mất. Đây là mã của tôi. Tôi đã sử dụng đồng bộ hóa. Các initialize Đầu tiên:Dữ liệu đã lưu bị mất sau khi xóa ứng dụng bằng NSUserDefaults
if (![userDefaults integerForKey:
kORFootageAirPlayModeKey])
{
[userDefaults setInteger:TRUE forKey:kORFootageAirPlayModeKey];
}
[userDefaults synchronize];
đọc giá trị trong một viewController:
airPlayMode = [[NSUserDefaults standardUserDefaults]integerForKey:kORFootageAirPlayModeKey];
Set nó trong một hành động:
- (IBAction)changeAirPlayStatus:(id)sender
{
if (sender)
{
airPlayMode = [sender tag];
[[NSUserDefaults standardUserDefaults] setInteger:airPlayMode forKey:kORFootageAirPlayModeKey];
[[NSUserDefaults standardUserDefaults] synchronize];
}
.....
}
Sau khi tôi thay đổi setInteger thành setBOOL, mọi thứ đều chính xác. Vì vậy, lực lượng chuyển đổi cho ios điên. Và vị trí của tệp plist trong:/Users/apple/Library/Hỗ trợ ứng dụng/iPhone Simulator/5.1/Applications/xxxx-xxxxx-xxxxx/Library/Preferences/com.yourappname.plist –