2014-09-06 75 views
0

当我有一个SKScene时,它是否更适合用于计分,生命计数精灵等等的变量,将它们声明为属性,或者将它们声明为@implementation中的变量。我知道属性的内存管理,但是如何释放对象,当它们被声明为经典变量时。如果SKScene被释放,他们是否从内存中释放,或者我是否需要照顾他们一些特殊的方式(将它们设置为零或类似的东西)。我所关心的只是对它们的内存管理。什么更好 - 属性或变量。 谢谢。属性vs变量

+0

使用ARC。它会在大多数时间为你处理所有事情。 – idmean 2014-09-06 08:06:10

+1

没有银子弹。你将内存管理(弱vs强)与访问级别(ivars vs properties)相混淆。如果您不需要访问该类范围之外的变量,请使用ivars。否则,使用其他类应该能够更改的变量的属性。 – LearnCocos2D 2014-09-06 08:48:58

回答

1

这一切都取决于将使用这些变量。如果他们是完全私人的话,我将宣布他们在实现文件的私人类别:

@interface MySceneClass() 
{ 
    unsigned _score; 
    NSTimeInterval _ticker; 
} 

然而,如果其它类需要读/写他们,使用特性:

@interface MySceneClass : SKScene 

@property (assign, readonly) unsigned score; 
@property (assign) NSTimeInterval ticker; 

至于内存管理担心,使用ARC时它们几乎是一样的。编译器将处理释放对象。

+0

感谢您的帮助。 – Baerdon 2014-09-06 11:05:00