0

UPDATEGMSMarker Speicher Userdata zunächst, aber (null), wenn abgerufen

Der Code funktioniert, wenn Sie den Punkt speichern und dann darauf tippen. Das Problem ist, wenn ich die App schließe und neu starte, sind die Daten weg ... es ist nur Null nach dem Neustart der App. Irgendwelche Ideen?

Ich versuche, Benutzerdaten in einem GMSMarker zu speichern und dann für einen Vergleich später abrufen. Dies ist mein Code zum Speichern:

int r = arc4random_uniform(99999999); 

matched = [[NSNumber alloc] initWithBool:NO]; 

PFGeoPoint *point = [PFGeoPoint geoPointWithLatitude:mapView_.myLocation.coordinate.latitude longitude:mapView_.myLocation.coordinate.longitude]; 

PFObject *pointstore = [PFObject objectWithClassName:@"MapPoints"]; 
pointstore[@"title"] = [userdefaults objectForKey:@"pfuser"]; 
pointstore[@"location"] = point; 
pointstore[@"count"] = stored; 
pointstore[@"matched"] = matched; 
pointstore[@"marker_id"] = [[NSString alloc] initWithFormat:@"%@", [NSNumber numberWithInteger:r]]; 

[pointstore saveEventually:^(BOOL succeeded, NSError *error) { 

    if (error) { 
     NSLog(@"Error"); 
    } 
    else { 
     GMSMarker *marker3 = [[GMSMarker alloc] init]; 
     marker3.position = mapView_.myLocation.coordinate; 
     marker3.title = [userdefaults objectForKey:@"pfuser"]; 
     marker3.icon = [UIImage imageNamed:@"marker"]; 
     marker3.userData = @{@"marker_id":[[NSString alloc] initWithFormat:@"%d", r]}; 
     NSLog(@"****markerdata****"); 
     NSLog([[NSNumber numberWithInt:r] description]); 
     marker3.map = mapView_; 
     NSLog(@"****markerdataafter****"); 
     NSLog([marker3.userData description]); 
    } 
}]; 

Die letzte Protokollmeldung markerdataafter richtig ist, was ich dachte, bedeutet, dass die Daten erfolgreich gespeichert worden sind.

Jedoch, wenn ich abrufen es, mit diesem Code:

- (void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(GMSMarker *)marker { 

    ... 

    NSLog(@"****gettingtapped****"); 
    NSLog([marker.userData objectForKey:@"marker_id"]); 

    ... 

Es wird als (null) zurückgegeben, so dass sie nicht zu finden, was ich gespeichert. Dieser hat mich seit Stunden verblüfft ... jede Hilfe wird geschätzt. Ich frage mich auch, ob es einen besseren Weg gibt, die marker_id zu machen.

Antwort

0

Ich habe den dummen Fehler gemacht, die userData nicht den Markern zuzuweisen, wenn sie initialisiert werden.

Verwandte Themen