MKAnnotation Swift 質問する

MKAnnotation Swift 質問する

Swift 言語でマップに注釈を付ける方法がわかりません。NSObject クラスの作成方法もわかりません。以下は試してみましたが実行できなかったコードです。

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

  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
    }
}

おすすめ記事