簡體   English   中英

為什么我的UILabel不使用NSUserDefaults保存/加載?

[英]Why is my UILabel not saving/loading with NSUserDefaults?

這是我要保存和加載的代碼。 我做了一個NSLog ,它顯示了應該保存/加載的文本,但是不是,並且只顯示了UILabel啟動時的默認文本。

更新:

另外,在我的NSLog ,它確實加載了文本,但是我認為問題出在標簽中。

保存:

NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];

NSString* CalLabel1Text = CalLabel1.text;
[defaults setObject:CalLabel1Text forKey:@"CalLabel1TextKey"];
NSString* callbltxt1 = [defaults objectForKey:@"CalLabel1TextKey"];
CalLabel1.text = callbltxt1;
NSLog(@"Saved Cal Label 1: %@", callbltxt1);

NSString* CalLabel2Text = CalLabel2.text;
[defaults setObject:CalLabel2Text forKey:@"CalLabel2TextKey"];
NSString* callbltxt2 = [defaults objectForKey:@"CalLabel2TextKey"];
CalLabel2.text = callbltxt2;
NSLog(@"Saved Cal Label 2: %@", callbltxt2);

NSString* CalLabel3Text = CalLabel3.text;
[defaults setObject:CalLabel3Text forKey:@"CalLabel3TextKey"];
NSString* callbltxt3 = [defaults objectForKey:@"CalLabel3TextKey"];
CalLabel3.text = callbltxt3;
NSLog(@"Saved Cal Label 3: %@", callbltxt3);

NSString* CalLabel4Text = CalLabel4.text;
[defaults setObject:CalLabel4Text forKey:@"CalLabel4TextKey"];
NSString* callbltxt4 = [defaults objectForKey:@"CalLabel4TextKey"];
CalLabel4.text = callbltxt4;
NSLog(@"Saved Cal Label 4: %@", callbltxt4);

NSString* CalLabel5Text = CalLabel5.text;
[defaults setObject:CalLabel5Text forKey:@"CalLabel5TextKey"];
NSString* callbltxt5 = [defaults objectForKey:@"CalLabel5TextKey"];
CalLabel5.text = callbltxt5;
NSLog(@"Saved Cal Label 5: %@", callbltxt5);

NSString* CalLabel6Text = CalLabel6.text;
[defaults setObject:CalLabel6Text forKey:@"CalLabel6TextKey"];
NSString* callbltxt6 = [defaults objectForKey:@"CalLabel6TextKey"];
CalLabel6.text = callbltxt6;
NSLog(@"Saved Cal Label 6: %@", callbltxt6);

[defaults synchronize];

裝載:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString* CalLabel1Text = CalLabel1.text;
NSString* callbltxt1 = [defaults objectForKey:@"CalLabel1TextKey"];
CalLabel1.text = callbltxt1;
NSLog(@"Loaded Cal Label 1: %@", callbltxt1);

NSString* CalLabel2Text = CalLabel2.text;
NSString* callbltxt2 = [defaults objectForKey:@"CalLabel2TextKey"];
CalLabel2.text = callbltxt2;
NSLog(@"Loaded Cal Label 2: %@", callbltxt2);

NSString* CalLabel3Text = CalLabel3.text;
NSString* callbltxt3 = [defaults objectForKey:@"CalLabel3TextKey"];
CalLabel1.text = callbltxt3;
NSLog(@"Loaded Cal Label 3: %@", callbltxt3);

NSString* CalLabel4Text = CalLabel4.text;
NSString* callbltxt4 = [defaults objectForKey:@"CalLabel4TextKey"];
CalLabel1.text = callbltxt4;
NSLog(@"Loaded Cal Label 4: %@", callbltxt4);

NSString* CalLabel5Text = CalLabel5.text;
NSString* callbltxt5 = [defaults objectForKey:@"CalLabel5TextKey"];
CalLabel5.text = callbltxt5;
NSLog(@"Loaded Cal Label 5: %@", callbltxt5);

NSString* CalLabel6Text = CalLabel6.text;
NSString* callbltxt6 = [defaults objectForKey:@"CalLabel6TextKey"];
CalLabel6.text = callbltxt6;
NSLog(@"Loaded Cal Label 6: %@", callbltxt6);

[defaults synchronize];

為什么這對我不起作用? 我將“保存”代碼放在按鈕動作上,並將“加載”代碼放在viewDidLoad

我敢打賭,您忘了在Interface Builder中連接參考插座。

另外,您的代碼具有未使用的變量。

檢查您的settings.bundle文件及其Root.plist。 可能存在一些數據問題或objectForKey問題。 檢查此鏈接

希望它能對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM