2014-06-11 16 views
0

这里的问题是:(虽然我用Spritekit节点的工作,我需要一些设置在里面SKSpriteNode访问,SKLabelNode类等等设置存储在非常基本的类型(字符串,数组,浮动).SpriteNode有属性“名称“,但这对我来说还不够,我需要一些数组字段,因为我需要更多的设置...Objective-C - 添加一些属性而不扩展类,有没有办法?

有没有办法,不知何故,添加这些设置让我们说SKNode类,以便他们可以一个SKSPriteNode和SKLabelNode类的一部分?

我不想让NSDictionary字段作为MyScene(SKScene)类的成员来存储所有设置的格式key-> value,因为访问它们需要更多不必要的编程逻辑。

我只是想在里面创建带有设置的节点,直接从该节点读取这些设置,并根据设置做出进一步的操作。

+0

您可以使用分类https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html – Guilherme

+0

@Guilherme你不能用一个类别 – ChrisH

+0

为什么不只是添加属性子类? – ChrisH

回答

0

如果我正确地读你的需求,那么它听起来就像你只是想使用用户数据属性。每个SKNode都有一个名为userdata的NSDictionary属性。你只需要初始化它,然后添加你的数据。

+0

这正是我一直在寻找的:) – Whirlwind

0

子类化将是首选的方法。

有一种叫做装饰模式但对象 - 它会概率困难得多给你。

相关问题