我不知道如何用swift语言标注 map .我不知道如何创建NSObject类.以下是我try 但无法运行的代码:

import Foundation
import MapKit
class MapPin : MKAnnotation
{
    var mycoordinate: CLLocationCoordinate2D
    var mytitle: String
    var mysubtitle: String

    func initMapPin (coordinate: CLLocationCoordinate2D!, title: String!, subtitle: String!)
    {
        mycoordinate = coordinate
        mytitle = title
        mysubtitle = subtitle
    }
}

推荐答案

  1. Swift中的所有初始化方法都必须是"init"
  2. MKAnnotation要求对象从NSObjectProtocol继承.为此,您应该让类从NSObject继承
  3. 您应该声明与MKAnnotation协议相匹配的属性
  4. 除非确实需要,否则不应将参数声明为隐式展开的选项.让编译器判断某个内容是否为nil,而不是抛出运行时错误.

这将为您提供以下结果:

class MapPin : NSObject, MKAnnotation {
    var coordinate: CLLocationCoordinate2D
    var title: String?
    var subtitle: String?

    init(coordinate: CLLocationCoordinate2D, title: String, subtitle: String) {
        self.coordinate = coordinate
        self.title = title
        self.subtitle = subtitle
    }
}

Swift相关问答推荐

防止NavigationLink自行返回导航视图

SwiftUI:使视图B与视图A具有相同宽度的视图A更改比率?

SwiftUI map 旋转

在SWIFTUI&39;S视图修改器中使用等待关键字

从SwiftUI使用UIPageView时,同一页面连续显示两次的问题

如何将多个完成处理程序转换为异步?

在表单中对齐文本框

从 actor 的 init 方法调用方法

如何裁剪图像 3:4 ?迅速

SwiftUI - Select 器没有 Select 值

使用列表的下一项更新相同的视图

SwiftUI View Builder 参数无法更改状态

如何在 Swift 中将 XPC 自定义类列入白名单?

如何让 SwiftUI 中的文本在旋转框架的同时侧向显示?

如何防止 UITableViewCell 移动(Swift 5)

让我的函数计算数组 Swift 的平均值

如何从 Swift 中的字符串生成条形码?

更改在变量的 willSet 块中设置的值

将 UIImage 剪成圆形

如何在 iOS 上的 Swift 中获取 sharedApplication?