나는 200 개의 핀을 표시하기 위해 MKMapView를 사용하는 응용 프로그램을 가지고 있습니다. 핀의 데이터가 Core Data에서 나오고 Core Data 객체의 NSManagedObject에 Objective-C 범주가 있습니다. 하위 클래스를 MKAnnotation으로 확장하면 핵심 데이터의 가져온 객체 배열을 맵보기에 직접 추가 할 수 있습니다. 문제는 핀이 서로 가깝기 때문에 CCHMapClusterController을 사용하기 시작했고 핀 객체가 더 이상 카테고리가 아니며 CCHMapClusterAnnotation 객체로 변환된다는 것입니다. 이전에 내 viewForAnnotation에서 핀에서 NSManagedObject 하위 클래스 (위치)를 가져 왔지만 더 이상 핀 객체가 Location 객체가 아니기 때문에 더 이상이 작업을 수행 할 수 없습니다. 이들은 CCHMapClusterObjects입니다. 여기에 내 옛날 viewForAnnotation은 다음과 같습니다CCHMapClusterController 핵심 데이터 NSManagedObject 하위 클래스
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation: (id<MKAnnotation>)annotation {
static NSString *reuseID = @"EAnnotation";
MKAnnotationView *view = [mapView dequeueReusableAnnotationViewWithIdentifier:reuseID];
if ([annotation isKindOfClass:[Location class]]) {
if (!view) {
view = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseID];
view.canShowCallout = YES;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 46, 46)];
Location *location = (Location *)annotation;
[imageView setImage:location.smallpic];
view.leftCalloutAccessoryView = imageView;
view.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
}
}
return view;
}
내 질문은, 어떻게 당신이지도에있는 모든 방법으로 확대하는 경우에 도청되고있는 위치 개체를 얻을 수있다? 나는 핀이 오브젝트 유형이 아닌 줌인 된 경우를 이해하지만 어느 정도 줌 인하면 어떤 탭 객체에 액세스 할 수 있어야합니다.