我正在尝试创建一个简单的类作为我的注释MKMapView.我正在获取我想要解析到这些注释对象的数据,并且认为使用字典初始化注释是一个好主意,并且在此模型类中而不是在a中进行所有解析UIViewController.我似乎无法摆脱编译器错误,每当我尝试修复一个错误时,会出现另一个错误.
目前正在获取" self.coordinate未在隐式生成的super.init呼叫中初始化的属性" .无论我在该方法中进行调用,调用super.init()仅产生不同的错误" self.coordinate未在super.init调用时初始化的属性" super.init().任何帮助将非常感激!这是我的代码现在的样子.
import Foundation
import MapKit
class Student: NSObject, MKAnnotation {
var coordinate: CLLocationCoordinate2D
var title: String
var subtitle: String
init(dictionary: Dictionary<String, AnyObject>) {
if let first = dictionary["firstName"] as? String {
if let last = dictionary["lastName"] as? String {
self.coordinate = CLLocationCoordinate2DMake(dictionary["latitude"] as! Double, dictionary["longitude"] as! Double)
self.title = first + " " + last
if let mediaURL = dictionary["mediaURL"] as? String {
self.subtitle = mediaURL
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在swift中你最常在super.init之前初始化所有变量,除非声明是可选的,在你的情况下你有两个需要初始化的变量,因为你在is语句中初始化你的变量swift不确定它是否真的会初始化if语句失败.将您的代码更改为:
var coordinate: CLLocationCoordinate2D?
var title: String?
var subtitle: String?
Run Code Online (Sandbox Code Playgroud)
如果你真的不在乎这些变量是否初始化,或者确保在init方法中用某些东西初始化它们.在内容中,您可以调用所有变量和/或可选的变量:super.init()
我希望能帮助你
| 归档时间: |
|
| 查看次数: |
2875 次 |
| 最近记录: |