Có thể sử dụng các đối tượng CLLocation làm các khóa trong từ điển không? Khi tôi thử điều này, [dictionary objectForKey: clLocationObj] luôn trả về nil ngay cả khi có các khóa CLLocation đã được chèn với chính xác cùng vĩ độ và kinh độ. Tôi có thể làm gì sai?sử dụng các đối tượng CLLocation làm khóa trong từ điển
for (Location *location in someArray) {
CLLocation *locationKey = [[CLLocation alloc] initWithLatitude:[location.latitude doubleValue] longitude:[location.longtitude doubleValue]];
LocationAnnotation *annotationAtLocation = [self.uniqueLocations objectForKey:locationKey];
if (annotationAtLocation == nil)
NSLog(@"this is always nil");
}
Tôi biết từ việc gỡ lỗi của mình rằng có nhiều đối tượng Vị trí có cùng vĩ độ và kinh độ trong someArray.
sao bạn giải quyết điều đó không? –
Tôi đã làm theo cách khác. Lý do tại sao CLLocation không hoạt động tốt với tôi là nó có nhiều thông tin hơn chỉ là lat/long trong đó, vì vậy so sánh 2 CLLocations với cùng một lat/long sẽ không dẫn đến kết quả trùng khớp. Tôi đã kết thúc việc chuyển đổi đối tượng CLLocationCoordinate2D thành một NSValue và sử dụng nó làm khóa cho từ điển. –