迅速。保存されているすべてのプロパティが初期化される前のメソッド呼び出しでの「self」の使用

マトロソフアレクサンダー

クラスがあります

class ChartView: UIView
{
  class: DotView {
    let circleView1: UIView
    let circleView2: UIView

    init (view: UIView)
    {
      self.view = view
      self.circleView1 = self.buildCircle(some rect here)
      self.circleView2 = self.buildCircle(some rect here)

    func buildCircle(rect: CGRect) -> UIView
    {
       let dotView = UIView(frame: rect)
       dotView.backgroundColor = UIColor.whiteColor()
       dotView.layer.cornerRadius = dotView.bounds.width / 2
       self.view.addSubview(dotView)
       return dotView
    }
  }
}

しかし、私はこのエラーを受け取りました:すべての保存されたプロパティが初期化される前にメソッド呼び出し「buildCircle」で「self」を使用する

したがって、何らかのメソッドでオブジェクトを作成し、それを保存されたプロパティに割り当てたいだけです。コードを修正するにはどうすればよいですか?

ピョートル・トボルスキー

オプションではないすべてのインスタンス変数が初期化される前に、selfでメソッドを呼び出すことはできません。それを回避する方法はいくつかあります。

  1. プロパティをオプションまたは暗黙的にアンラップされたオプションに変更します(非推奨)
  2. 作成しbuildCircle()たファイル内のメソッド静的または単に機能を呼び出すとaddSubview()、すべての円のプロパティのすべてが初期化された、あなたが呼ばれた後、super.init()
  3. など。クラスが初期化される前に、selfへの呼び出しを回避する必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Swift 2.0:保存されたプロパティが初期化される前のメソッド呼び出しでのselfの使用

分類Dev

保存されているすべてのプロパティが初期化される前に使用される「self」

分類Dev

SwiftUIビュー、構造体メンバーでクロージャを初期化すると、保存されているすべてのプロパティが初期化される前に「self」が使用されます<

分類Dev

init()で2つの変数を初期化しています: 'self'は、保存されているすべてのプロパティが初期化される前に使用されます

分類Dev

プロパティ 'self.title'がswiftのsuper.init呼び出しで初期化されていません

分類Dev

Swift 5.1@propertyWrapper-保存されているすべてのプロパティが初期化される前にプロパティアクセスで使用される「self」

分類Dev

C#では、main()メソッドが呼び出される前に、すべての静的変数が初期化されますか?

分類Dev

「super.initがselfを初期化する前にメソッド呼び出しでselfを使用する」、メソッド呼び出しを介してプロパティを初期化することはできません

分類Dev

@Stateを使用すると、保存されているすべてのプロパティが初期化される前に使用される「self」に解決されます

分類Dev

初期化されていない可能性のある配列をパラメーターとして使用するメソッドを呼び出す方法は?

分類Dev

保存されているすべてのプロパティが初期化される前の自己によるカスタムデコーダーエラー

分類Dev

すべてのSpringBeansとApplicationContextが初期化された後のメソッドの呼び出し

分類Dev

メソッドを呼び出す前に、Firebaseからのデータで配列が初期化されるのを待っています

分類Dev

C#派生属性は内部でどのように機能しますか?その中のメソッドは、宣言されているクラス/メソッド/プロパティに作用するためにいつ呼び出されますか?

分類Dev

呼び出す前に、メソッド/プロパティが定義されているかどうかを確認してください

分類Dev

保存されているすべてのプロパティを初期化せずに初期化子から戻るswiftios

分類Dev

CustomElementの初期化は、要素が定義される前に同じ名前のプロパティが設定されている場合、クラスメソッドを削除します(get / setも)

分類Dev

Javaで長さがメソッドとして使用され、プロパティとして使用されるのはいつですか?

分類Dev

すべてのgetterメソッドが呼び出されていることを確認します

分類Dev

'super.init'呼び出しの前にメソッド呼び出し 'foo'で使用される 'self'

分類Dev

jQuery UIから「UncaughtError:初期化前にダイアログでメソッドを呼び出せません。メソッド 'close'を呼び出そうとしました」というメッセージが表示されるのはなぜですか。

分類Dev

mockitoを使用して配列要素をスパイすると、メソッドが呼び出されたときに必要なのに呼び出されない

分類Dev

オブジェクトが適切に初期化されていることを確認できるのはいつですか。たとえば、init()が他のメソッドの前に呼び出された場合などです。

分類Dev

エラー:Firestoreはすでに初期化されています。settings()を呼び出すことができるのは、Firestoreオブジェクトの他のメソッドを呼び出す前に1回だけです。

分類Dev

Sequelize(?):変数に格納されているSaveメソッドが呼び出されるとエラーがスローされます:未処理の拒否TypeError:未定義のプロパティ 'isNewRecord'を読み取れません

分類Dev

ジェネリッククラスが呼び出しメソッドにすべてのプロパティの値を返さない

分類Dev

Androidでカメラを呼び出しているときに、アクティビティ内のすべての変数(Activity1からインテントを介して取得)が再初期化されるのはなぜですか?

分類Dev

PowerMock(EasyMock)を使用してパッケージの保護された静的メソッドが呼び出されるたびに例外をスローする

分類Dev

匿名メソッド内で呼び出されるメソッドとプロパティに直接割り当てられるメソッドの違いは何ですか

Related 関連記事

  1. 1

    Swift 2.0:保存されたプロパティが初期化される前のメソッド呼び出しでのselfの使用

  2. 2

    保存されているすべてのプロパティが初期化される前に使用される「self」

  3. 3

    SwiftUIビュー、構造体メンバーでクロージャを初期化すると、保存されているすべてのプロパティが初期化される前に「self」が使用されます<

  4. 4

    init()で2つの変数を初期化しています: 'self'は、保存されているすべてのプロパティが初期化される前に使用されます

  5. 5

    プロパティ 'self.title'がswiftのsuper.init呼び出しで初期化されていません

  6. 6

    Swift 5.1@propertyWrapper-保存されているすべてのプロパティが初期化される前にプロパティアクセスで使用される「self」

  7. 7

    C#では、main()メソッドが呼び出される前に、すべての静的変数が初期化されますか?

  8. 8

    「super.initがselfを初期化する前にメソッド呼び出しでselfを使用する」、メソッド呼び出しを介してプロパティを初期化することはできません

  9. 9

    @Stateを使用すると、保存されているすべてのプロパティが初期化される前に使用される「self」に解決されます

  10. 10

    初期化されていない可能性のある配列をパラメーターとして使用するメソッドを呼び出す方法は?

  11. 11

    保存されているすべてのプロパティが初期化される前の自己によるカスタムデコーダーエラー

  12. 12

    すべてのSpringBeansとApplicationContextが初期化された後のメソッドの呼び出し

  13. 13

    メソッドを呼び出す前に、Firebaseからのデータで配列が初期化されるのを待っています

  14. 14

    C#派生属性は内部でどのように機能しますか?その中のメソッドは、宣言されているクラス/メソッド/プロパティに作用するためにいつ呼び出されますか?

  15. 15

    呼び出す前に、メソッド/プロパティが定義されているかどうかを確認してください

  16. 16

    保存されているすべてのプロパティを初期化せずに初期化子から戻るswiftios

  17. 17

    CustomElementの初期化は、要素が定義される前に同じ名前のプロパティが設定されている場合、クラスメソッドを削除します(get / setも)

  18. 18

    Javaで長さがメソッドとして使用され、プロパティとして使用されるのはいつですか?

  19. 19

    すべてのgetterメソッドが呼び出されていることを確認します

  20. 20

    'super.init'呼び出しの前にメソッド呼び出し 'foo'で使用される 'self'

  21. 21

    jQuery UIから「UncaughtError:初期化前にダイアログでメソッドを呼び出せません。メソッド 'close'を呼び出そうとしました」というメッセージが表示されるのはなぜですか。

  22. 22

    mockitoを使用して配列要素をスパイすると、メソッドが呼び出されたときに必要なのに呼び出されない

  23. 23

    オブジェクトが適切に初期化されていることを確認できるのはいつですか。たとえば、init()が他のメソッドの前に呼び出された場合などです。

  24. 24

    エラー:Firestoreはすでに初期化されています。settings()を呼び出すことができるのは、Firestoreオブジェクトの他のメソッドを呼び出す前に1回だけです。

  25. 25

    Sequelize(?):変数に格納されているSaveメソッドが呼び出されるとエラーがスローされます:未処理の拒否TypeError:未定義のプロパティ 'isNewRecord'を読み取れません

  26. 26

    ジェネリッククラスが呼び出しメソッドにすべてのプロパティの値を返さない

  27. 27

    Androidでカメラを呼び出しているときに、アクティビティ内のすべての変数(Activity1からインテントを介して取得)が再初期化されるのはなぜですか?

  28. 28

    PowerMock(EasyMock)を使用してパッケージの保護された静的メソッドが呼び出されるたびに例外をスローする

  29. 29

    匿名メソッド内で呼び出されるメソッドとプロパティに直接割り当てられるメソッドの違いは何ですか

ホットタグ

アーカイブ