如何将 MKAnnotation 添加到领域
How to add MKAnnotation to realm
我正在尝试将 MKAnnotation 添加到 Realm。
这是我的对象和我尝试过的:
class pins: Object {
@objc dynamic var pin: MKAnnotation!
}
struct pin {
static var pin: MKAnnotation!
}
我将静态变量添加到一个函数中,并使用 realm.beginWrite() 等来添加注释。
错误:
Thread 1: "Property pins.pin is declared as Optional,
which is not a supported managed Object property type.
如果有人知道如何在 Realm 中存储 MKAnnotation 或知道我做错了什么,请告诉我 :D。
MKAnnotation 不受支持的 Realm 属性 因此它不能由 Realm 管理。参见 Supported Property Types。
因此,使用 MKAnnotations 的方法是将其分解为 Realm 可以 管理的对象(也称为原语);字符串、数字等
MKAnnotation 是一种协议,因此我们首先需要一个对象来存储该数据
class MyAnnotation: NSObject, MKAnnotation {
var coordinate: CLLocationCoordinate2D
var phone: String!
var name: String!
var address: String!
var image: UIImage!
convenience init(lat: Double, lon: Double, phone: String, name: String, addr: String, image: UIImage {
let coord = CLLocationCoordinate2DMake(lat, long)
self.coordinate = coord
self.phone = phone
etc
}
}
并将您的纬度和经度作为 Double 存储在 Realm 中。
一种选择是使用包含坐标数据的 Realm 对象
class MyCoords: Object {
@objc dynamic var lat = 0.0 //or @Persisted var lat = 0.0 Realm 10.0
@objc dynamic var long = 0.0
@objc dynamic var phone = ""
etc
}
然后读入这些对象并根据该数据实例化您的 MKAnnotation 对象。
let myCoordResults = realm.objects(MyCoords.self)
for coord in myCoordResults {
let annotation = MyAnnotation(lat: coord.lat, long: coord.long...
// do something with the annotation
}
我正在尝试将 MKAnnotation 添加到 Realm。
这是我的对象和我尝试过的:
class pins: Object {
@objc dynamic var pin: MKAnnotation!
}
struct pin {
static var pin: MKAnnotation!
}
我将静态变量添加到一个函数中,并使用 realm.beginWrite() 等来添加注释。
错误:
Thread 1: "Property pins.pin is declared as Optional, which is not a supported managed Object property type.
如果有人知道如何在 Realm 中存储 MKAnnotation 或知道我做错了什么,请告诉我 :D。
MKAnnotation 不受支持的 Realm 属性 因此它不能由 Realm 管理。参见 Supported Property Types。
因此,使用 MKAnnotations 的方法是将其分解为 Realm 可以 管理的对象(也称为原语);字符串、数字等
MKAnnotation 是一种协议,因此我们首先需要一个对象来存储该数据
class MyAnnotation: NSObject, MKAnnotation {
var coordinate: CLLocationCoordinate2D
var phone: String!
var name: String!
var address: String!
var image: UIImage!
convenience init(lat: Double, lon: Double, phone: String, name: String, addr: String, image: UIImage {
let coord = CLLocationCoordinate2DMake(lat, long)
self.coordinate = coord
self.phone = phone
etc
}
}
并将您的纬度和经度作为 Double 存储在 Realm 中。
一种选择是使用包含坐标数据的 Realm 对象
class MyCoords: Object {
@objc dynamic var lat = 0.0 //or @Persisted var lat = 0.0 Realm 10.0
@objc dynamic var long = 0.0
@objc dynamic var phone = ""
etc
}
然后读入这些对象并根据该数据实例化您的 MKAnnotation 对象。
let myCoordResults = realm.objects(MyCoords.self)
for coord in myCoordResults {
let annotation = MyAnnotation(lat: coord.lat, long: coord.long...
// do something with the annotation
}