2013-02-01 24 views
0

我有一個uitext字段iboutlet集合,我想加載數據,但loadData不起作用,只saveData。加載數據uitextfield

SAVEDATA:

-(IBAction)saveData:(id)sender{ 
for (UITextField*longitud in guardarDatos){ 
    NSString*saveString=longitud.text; 
    NSUserDefaults*defauls = [NSUserDefaults standardUserDefaults]; 
    [defauls setObject:saveString forKey:@"savedString"]; 
    [defauls synchronize]; 
    NSLog(@"%@",saveString); 
} 
} 

loadData:

-(IBAction)loadData:(id)sender{ 
for (UITextField*longitud in guardarDatos){ 
    NSUserDefaults*defauls = [NSUserDefaults standardUserDefaults]; 
    NSString*loadString=[defauls objectForKey:@"savedString"]; 
    [longitud setText:loadString]; 
    NSLog(@"%@",longitud); 
} 
} 
+0

嘗試的NSLog(@ 「%@」,longitud.text); – danh

+1

你想打印一個UITextField? –

+0

問題是什麼?不工作意味着,不顯示任何數據或顯示相同的數據或其他東西? –

回答

1

要保存使用相同的密鑰不同的對象。因此,使用不同的密鑰對不同的對象

SAVEDATA

-(IBAction)saveData:(id)sender{ 
UITextField*longitud = nil; 
for (int i = 0; i < guardarDatos.count; i++){ 
    longitud = [guardarDatos objectAtIndex:i]; 
    NSString*saveString=longitud.text; 
    NSUserDefaults*defauls = [NSUserDefaults standardUserDefaults]; 
    [defauls setObject:saveString forKey:[NSString stringWithFormat:@"savedString%d",i]]; 
    [defauls synchronize]; 
    NSLog(@"%@",saveString); 
} 
} 

loadData:

-(IBAction)loadData:(id)sender{ 
UITextField*longitud = nil; 
for (int i = 0; i < guardarDatos.count; i++){ 
    longitud = [guardarDatos objectAtIndex:i]; 
    NSUserDefaults*defauls = [NSUserDefaults standardUserDefaults]; 
    NSString*loadString=[defauls objectForKey:[NSString stringWithFormat:@"savedString%d",i]]; 
    [longitud setText:loadString]; 
    NSLog(@"%@",longitud); 
} 
} 
+0

謝謝,該代碼完美地工作! –

0

即使你正確保存,在保存數據,objectForKey的結尾:@ 「savedString」 只有一個值,它是最後一個值你已保存了。加載數據時,它將爲每個文本字段加載相同的數據。你的邏輯似乎是錯誤的。每次爲savedString設置一個不同的名稱,並嘗試從新名稱中獲取值。

另一項建議,嘗試運行SAVEDATA和loadData一個文本字段,用於你的所有的文本框運行前..