如果我总是在不同的类中初始化一种类型,这对性能有害还是有益?

时间:2017-03-18 10:28:46

标签: swift sprite-kit skaction

世界!我有一个Actions课程,我在我的精灵套装游戏中保存所有动作,动画和声音播放。因此,在我的所有SKNodeSKSceneSKSpriteNode类中,我始终初始化此Actions类。这对性能有益吗?或者我必须初始化一次,例如在GameViewController中,然后将此类的副本传递给我需要的所有其他类?

1 个答案:

答案 0 :(得分:2)

正如Fogmeister在评论中提到的,你可以使用静态方法来实现这一点。这也有助于提高绩效。

如果您查看SKAction文档,您会注意到它也使用了类变量和方法。

一般情况下,如果您不需要多次实例化一个类,这是一个完美的例子,而不是最好使用静态/类方法或单例。

您可以使用类,结构或枚举。我更喜欢使用枚举,因为你不能意外地实例化它们或者需要添加一个私有的初始化器。

// Class
class SKActionHelper {

     static var someProperty = ...

     static func someMethod() { 
         ... 
     }
 }

 // Struct
 struct SKActionHelper {

     static var someProperty = ...

     static func someMethod() { 
         ... 
     }
 }

 // Enum
 enum SKActionHelper {

     static var someProperty = ...

     static func someMethod() { 
         ... 
     }
 }

现在,您可以在项目的任何位置调用这些属性或方法,而不必每次都实例化该类。

 SKActionHelper.someProperty = ...
 SKActionHelper.someMethod()

希望这有帮助