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
.