0

オブジェクト インスタンスをスポーンできる独自のクラスを Swift で作成するための、今日の初心者向けチュートリアルを十分に楽しんだので。この知識を基に、Apple の Cocoa Touch API の使用を開始することで、より良くなることを望んでいます。しかし、UIViewController、UIResponder、UITouch などのクラス リファレンスを読んでいるうちに、これらのクラスにはインスタンスを生成するための初期化関数がないことに気付きました。私はこれをすべて間違っていると考えていますか、それともこれらのクラスがサブクラス化されることを意図していると仮定しても安全ですか? そして、それらがサブクラス化されることを意図している場合、インスタンスを生成して使用するために独自の init 関数を作成する必要がありますか??

ちょっとした背景として、Apple の抽象的なレシピ (クラス リファレンス ドキュメント) に準拠し、string、double、integer などの目的の型を配置する限り、好きなものを構築できる小さなレゴの観点から考えています。 . オブジェクトを生き生きとさせる正しい場所に。Appleのオブジェクトに関して、これについて正しく考えていますか?

これは、このタイプのオブジェクトを生成できる init 関数を含む今日のチュートリアルで行ったことの例と、レゴの観点から考えている理由です。

struct Location: Equatable {

    let name: String

    let coordinate: CLLocationCoordinate2D?

    init(name: String, coordinate: CLLocationCoordinate2D? = nil) {
        self.name = name
        self.coordinate = coordinate
    }

}

Swift プログラミング ガイドを読んで、一般的な理解ができました。楽しそうなので早くココアタッチを楽しみたいと思います。

私は初心者であり、おそらくキーボードに触れてはならない馬鹿であることを知っているので、事前に説明していただきありがとうございます。

4

1 に答える 1

1

UIViewControllerにはいくつかのinit方法があります。

のようなクラスには、独自のインスタンスを作成することは想定されていないため、パブリックメソッドはありませんUITouch init

のようなクラスUIViewControllerは、サブクラス化されることを意図しています。のインスタンスをUIViewController直接使用することは一般的ではありません。

initまた、Swift では、独自のメソッドを明示的に追加しない限り、サブクラスは親クラスのメソッドを取得することを忘れないでくださいinit。サブクラスには、init明示的に追加したメソッドのみが含まれます。

于 2017-01-05T00:39:51.617 に答える