0

UPDATEGMS 마커 처음 userData에 저장하지만 (널)를 검색 할 때

당신이 포인트를 저장하고 다음을 누릅니다 때 코드가 작동합니다. 문제는 응용 프로그램을 닫고 다시 시작하면 데이터가 사라지고 ... 응용 프로그램을 다시 시작한 후 유일한 null입니다. 어떤 아이디어?

userData를 GMSMarker에 저장하고 나중에 비교를 위해 검색하려고합니다. 이 저장 내 코드입니다 :

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]); 
    } 
}]; 

생각 메시지 markerdataafter가 올바른지 마지막 로그, 데이터가 성공적으로 저장되었다는 것을 의미한다.

그러나이 코드와 함께, 그것을 검색 할 때 :

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

    ... 

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

    ... 

그것은 (null)로 반환됩니다, 그래서 그 내가 저장된 것을 발견하지. 이 하나는 몇 시간 동안 나를 당황하게했습니다 ... 어떤 도움을 주셔서 감사합니다. 또한 더 나은 방법으로 처리 할 수 ​​있는지 궁금해합니다. marker_id.

답변

0

내가 초기화 할 때 마커에 userData을 할당하지 않는 어리석은 실수를 저지른 것입니다.