属性与变量

时间:2014-09-06 08:01:27

标签: objective-c sprite-kit

当我有一个SKScene时,对于我用于评分,生命计数精灵等的变量,将它们声明为属性或在@implementation中将它们声明为变量更好。我知道属性的内存管理,但是当它们被声明为经典变量时,我如何释放它们。如果SKScene被释放,他们会从记忆中释放,还是我必须以某种特殊的方式照顾他们(将他们设置为零或类似的东西)。我关心的只是内存管理。什么是更好的 - 属性或变量。 谢谢。

1 个答案:

答案 0 :(得分:1)

这完全取决于将要使用这些变量的内容。如果它们完全是私有的,那么我会在实现文件中将它们声明为私有类:

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

但是,如果其他类需要读/写它们,请使用属性:

@interface MySceneClass : SKScene

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

就内存管理而言,使用ARC时它们几乎相同。编译器将处理释放对象。