Swift CG Rect问题-无法调用初始值设定项
我已经修复了我原来的问题,但我有一个新的错误,即“类型‘ViewController’不符合协议‘SideBarDelegate’。” 我知道我很快就可以让它工作了,但由于某种原因,我不知道为什么会发生这种情况!有人能帮忙吗Swift CG Rect问题-无法调用初始值设定项,swift,Swift,我已经修复了我原来的问题,但我有一个新的错误,即“类型‘ViewController’不符合协议‘SideBarDelegate’。” 我知道我很快就可以让它工作了,但由于某种原因,我不知道为什么会发生这种情况!有人能帮忙吗 class ViewController: UIViewController, SideBarDelegate { var sideBar: SideBar = SideBar() @IBOutlet weak var mapView: MKMapView! let
class ViewController: UIViewController, SideBarDelegate {
var sideBar: SideBar = SideBar()
@IBOutlet weak var mapView: MKMapView!
let locationsRef = FIRDatabase.database().reference(withPath: "locations")
override func viewDidLoad() {
super.viewDidLoad()
mapView.delegate = self
mapView.showsUserLocation = true
//sidebar
sideBar = SideBar(sourceView: self.view, skateItems: ["All Skate Spots", "Skateparks", "Street Skating"])
// Passing firebase annotation data
locationsRef.observe(.value, with: { snapshot in
for item in snapshot.children {
guard let locationData = item as? FIRDataSnapshot else { continue }
let locationValue = locationData.value as! [String: Any]
var location: CLLocationCoordinate2D!
if let lat = locationValue["lat"] as? String {
// Stored as String
let lng = Double(locationValue["lng"] as! String)!
location = CLLocationCoordinate2D(latitude: Double(lat)!, longitude: lng)
}
else {
// Stored as a floating point number
let lat = locationValue["lat"] as! Double
let lng = locationValue["lng"] as! Double
location = CLLocationCoordinate2D(latitude: lat, longitude: lng)
}
let name = locationValue["name"] as! String
let subtitle = locationValue["subtitle"] as! String
self.addAnnotation(at: location, name: name, subtitle: subtitle)
}
})
}
func addAnnotation(at location: CLLocationCoordinate2D, name: String, subtitle: String) {
// Adding annotation to the map
let annotation = MKPointAnnotation()
annotation.coordinate = CLLocationCoordinate2D(latitude: location.latitude, longitude: location.longitude)
annotation.title = name
annotation.subtitle = subtitle
mapView.addAnnotation(annotation)
}
}
func sideBarDidSelectButtonAtIndex(index: Int) {
}
extension ViewController: MKMapViewDelegate {
}
extension ViewController: CLLocationManagerDelegate {
}
通常,委托被声明为弱可选(解决未初始化错误) 始终使用可选链接调用,如果未设置委托,则该链接不起任何作用 比如说
delegate?.sideBarWillClose?()
只需在-1->
-barWidth-1
或-barWidth+-1
之间添加一个空格即可,谢谢,不过我随后收到了另一个问题,我已将其发布为更新的codeDon't post屏幕截图!发布你的代码。很抱歉现在就可以了。请你阅读网站的部分。您可以只发布与您所问问题相关的代码。非常感谢!这非常有帮助!瓦迪安,我有一个新问题!你能帮个忙吗?瓦迪安是谁?不要因为改变内容而把问题搞得一团糟。现在问题的主体与主题无关。问一个新问题<代码>不符合协议意味着您必须实现协议所需的方法。我是说瓦迪安…抱歉?!
delegate?.sideBarWillClose?()