Hey Guys Ben NSUserDefaults ilgili sorunlar yaşıyorum ve ben oldukçaNSUserDefaults düzgün
Benim App oluyor 5 seviyeleri vardır ve her seviye NSUserDefaults ile aynı şeyi (yapar ne anlamıyorum seviyeleri varsayılan alır , kullanıcı seviyeyi oynattıkça değeri değiştirir ve ardından varsayılanları ayarlar ve seviyenin sonunda senkronize eder) ilk 4 seviye ... bir aksama olmadan çalışır ancak son seviye değerleri kaydetmez. Uygulama çökmez ve son seviye gerçekleşen en son şey değildir. Ve uygulama bittiğinde varsayılanlar bile senkronize olur. NSUserDefaults üzerinde maksimum boyutu var mı ya da orada birşey kimse ben aşağıdaki kodu göndeririz değil ki düşünebiliriz ama dediğim gibi ben geçtiğinizde zaman ilk dört seviyeleri mükemmel
//header
NSUserDefaults *userData;
@property(nonatomic,retain) NSUserDefaults *userData;
//class file
//Sets the boolean variables for the class to use
userData = [NSUserDefaults standardUserDefaults];
boolOne = [userData boolForKey:@"LevelFiveBoolOne"];
boolTwo = [userData boolForKey:@"LevelFiveBoolTwo"];
boolThree = [userData boolForKey:@"LevelFiveBoolThree"];
boolFour = [userData boolForKey:@"LevelFiveBoolFour"];
boolFive = [userData boolForKey:@"LevelFiveBoolFive"];
boolSix = [userData boolForKey:@"LevelFiveBoolSix"];
boolSeven = [userData boolForKey:@"LevelFiveBoolSeven"];
//End Of Level
[userData setBool:boolOne forKey:@"LevelFiveBoolOne"];
[userData setBool:boolTwo forKey:@"LevelFiveBoolTwo"];
[userData setBool:boolThree forKey:@"LevelFiveBoolThree"];
[userData setBool:boolFour forKey:@"LevelFiveBoolFour"];
[userData setBool:boolFive forKey:@"LevelFiveBoolFive"];
[userData setBool:boolSix forKey:@"LevelFiveBoolSix"];
[userData setBool:boolSeven forKey:@"LevelFiveBoolSeven"];
[userData synchronize];
çalışmak Bu varsayılanları kullanan görünüme göre değerler doğrudur, ancak uygulamayı sonlandırdığımda ve yeniden başlattığımda, bu değerler kaydedilmez, diğer tüm seviyeler aynı işlemi yapar ve bu, çalışmayan tek düzeydir.
Uzun bir süredir buna baktım ve dışarıda birisinin aynı sorunla karşılaştığını ve nasıl çözüldüklerine dair bana biraz bilgi verebileceğini umuyorum. Ayarladığınız başlangıç varsayılan LevelFive varsayılan yoksa o zaman çağrıları başarısız olur,
// load the default values for the user defaults
userDefaultsValuesPath=[[NSBundle mainBundle] pathForResource:@"UserDefaults" ofType:@"plist"];
userDefaultsValuesDict=[NSDictionary dictionaryWithContentsOfFile:userDefaultsValuesPath];
// set them in the standard user defaults
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValuesDict];
:
gibi bir şey var Öncesinde BWC
Ne gönderdiğinizden anlatmak zor. Seviyeden sonra varsayılanları kaydeden yöntemi iki kez kontrol edin. – Jordan