2016-04-13 12 views
-2

Ich habe versucht, viele Male meine Informationen unter Verwendung NSUserDefaults zu speichern, aber fehlgeschlagen. Ich weiß nicht, wie ich es lösen soll.Objective-C NSUserDefaults kann meine Informationen nicht speichern

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    if (tableView == mySearchController.searchResultsTableView) 
    { 
     //BMKPoiInfo* info = poiResultArray[indexPath.row]; 
     NSString *nn = poiResultArray[indexPath.row]; 

    //dw 
    NSUserDefaults *userDef =[NSUserDefaults standardUserDefaults]; 
    [userDef setInteger:1 forKey:@"poiPosition"]; 
//  [userDef setObject:@"aa" forKey:@"poiPosition"]; 
    [userDef synchronize]; 

    [_selectBtn setTitle:nn/*info.name*/ forState:UIControlStateNormal]; 

    NSInteger nu = [userDef integerForKey:@"poiPosition"]; 

das sind meine Codes, aber "nu" kein Ergebnis hat, und u kann ich hatte

NSUserDefaults *userDef =[NSUserDefaults standardUserDefaults]; 
    [userDef setInteger:1 forKey:@"poiPosition"]; 
//  [userDef setObject:@"aa" forKey:@"poiPosition"]; 
    [userDef synchronize]; 

sehen, warum "nu" nichts hat?

+0

speichern und abrufen Was genau sind Sie für einen Fehler bekommen, und wie empfangen Ausgabe von den erwarteten Ausgang unterscheiden? Sehen Sie sich bitte [ask] und [mcve] an, um zu erfahren, wie Sie Ihren Beitrag bearbeiten können. –

+0

Was ist der Zweck, den Standardwert im gleichen Bereich direkt nach dem Speichern wieder zu lesen? In diesem Moment soll der Wert bekannt sein. – vadian

+0

Es ist nichts falsch an Ihrem Code-Mann. Überprüfen Sie den Schlüssel des Schlüssels, den Sie in Ihrem Code verwenden, wenn Sie anders eingeben. hier scheint es perfekt zu sein. – Lion

Antwort

0

Sie können - [NSUserDefaults setInteger:forKey:] verwenden, um den Wert zu speichern und - [NSUserDefaults integerForKey], um ihn abzurufen.

stellen Sie sicher, denselben Schlüssel verwenden für das Objekt aus NSUserDefaults

+0

ja, Schlüssel ist der gleiche, Sie können Code im Frage-Inhalt sehen –

+0

NSLog (@ "% ld", (lang) [[NSUserDefaults standardUserDefaults] integerForKey: @ "poiPosition"]); und das funktioniert für mich –