Я получаю геолокации для аннотаций на карте и хотел бы показать изображение, связанное с пользователем, из той же строки в пользовательском представлении.Извлечь изображения из Parse вдоль его геолокации
Я пытался экономить PFFiles в словаре наряду с ObjectIds, потому что я устанавливаю заголовок каждого примечания по своему расположению в ObjectID, но это дает мне - [PFObject ObjectId]: непризнанные селектор направил к экземпляру.
Это то, что я сейчас делаю.
PFQuery *query = [PFQuery queryWithClassName:@"photoObject"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
for (id object in objects) {
[self.annotationArray addObject:object[@"location"]];
NSLog(@"Annotation's coordinate : %@", self.annotationArray);
UIImage *image = [UIImage imageWithData:object[@"photo"]];
[self.imageFileDict setObject:object[@"photo"] forKey:[object objectID]];
NSLog(@"imageFileDict : %@", self.imageFileDict);
self.geoPoint = object[@"location"];
CLLocationCoordinate2D locCoord = CLLocationCoordinate2DMake(self.geoPoint.latitude, self.geoPoint.longitude);
CustomPin *pin = [[CustomPin alloc] initWithTitle:[object objectId] location:locCoord image:image];
[self.mainMap addAnnotation:pin];
NSLog(@"Adding annotation");
}
}];
А потом
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
CustomPin *pin = (CustomPin *)[view annotation];
NSLog(@"selected pin's objectID : %@",pin.title);
UIImageView *callOutview = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.width)];
[self.view addSubview:callOutview];
callOutview.backgroundColor = [UIColor yellowColor];
callOutview.image = pin.image;}
Редактировать
Я понял, что я должен был сделать это для того, чтобы заставить его работать с PFFiles
PFFile *imageFile = object[@"photo"];
[imageFile getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {
if (!error) {
self.callOutImage = [UIImage imageWithData:imageData];
}}];
Но до сих пор не за работой.
попробуйте это сначала: измените это для (id объекта в объектах) {для этого для объекта PFObject * в объектах) {затем показать результат – Loxx
Нет, не работает. – durazno
Да, я пробовал все варианты, и вы правы, он еще не работает – Loxx