#swift #mapkit
#swift #mapkit
Вопрос:
Я хочу создать приложение, в котором пользователь может поместить pin-код на карту, нажав на карту. После удаления pin-кода я хочу сохранить pin-код в базе данных. Мне все равно, в каком из них может Realm
быть или CoreData
.
Комментарии:
1. Я думаю, что это идеальное руководство для вас raywenderlich.com/112544/realm-tutorial-getting-started . Там вы создаете приложение на основе карт с Realm в качестве хранилища данных
2. учебник кажется идеальным, спасибо. Я попробую это сейчас
Ответ №1:
RTFM
Не могу вам помочь без какого-либо кода или каких-либо проблем.
некоторые ссылки, которые могут быть полезными : https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/index.html
https://developer.apple.com/reference/corelocation
https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40009497
вернитесь после того, как попробуете что-нибудь 😉
Редактировать:
Вы определили распознаватель жестов внутри своего viewDidLoad
метода, вместо этого поместите его непосредственно в свой контроллер, что должно устранить некоторые ошибки :
import UIKit
import MapKit
class ViewController: UIViewController {
@IBOutlet var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
// Create a gesture recognizer for long presses (for example in viewDidLoad)
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
lpgr.minimumPressDuration = 0.5; //user needs to press for half a second.
[self.mapView addGestureRecognizer:lpgr];
}
- (void)handleLongPress:(UIGestureRecognizer *)gestureRecognizer {
if (gestureRecognizer.state != UIGestureRecognizerStateBegan) {
return;
}
CGPoint touchPoint = [gestureRecognizer locationInView:self.mapView];
CLLocationCoordinate2D touchMapCoordinate = [self.mapView convertPoint:touchPoint toCoordinateFromView:self.mapView];
MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
point.coordinate = touchMapCoordinate;
for (id annotation in self.mapView.annotations) {
[self.mapView removeAnnotation:annotation];
}
[self.mapView addAnnotation:point];
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Комментарии:
1. Теперь я получаю ожидаемое выражение ошибки в списке выражений в строке UILongPressGestureRecognisezer *lpgr… и ожидаемое объявление ошибки в строке — (void)handleLongPress: … я действительно не знаю, что не так с моим кодом
2. Отсутствовал знак равенства