“initialize” class method for classes in Swift?

后端 未结 6 1108
日久生厌
日久生厌 2020-12-04 11:55

I\'m looking for behavior similar to Objective-C\'s +(void)initialize class method, in that the method is called once when the class is initialized, and never a

6条回答
  •  广开言路
    2020-12-04 12:43

    You can use stored type properties instead of initialize method.

    class SomeClass: {
      private static let initializer: Void = {
        //some initialization
      }()
    }
    

    But since stored types properties are actually lazily initialized on their first access, you will need refer them somewhere. You can do this with ordinary stored property:

    class SomeClass: {
      private static let initializer: Void = {
        //some initialization
      }()
      private let initializer: Void = SomeClass.initializer
    }
    

提交回复
热议问题