假设是否已经有类属性
@property (strong, nonatomic) JJNode *leftChild;
@property (strong, nonatomic) JJNode *rightChild;
并且该应用程序已经广泛使用if (parent.leftChild) { ... }
and parent.leftChild = newNode
(getter 和 setter)。
但是说,如果左右孩子可以用一个NSMutableArray
对象来表示,这个类可能会更好地工作,这样该类将来可以支持N个孩子,并且循环通过孩子更容易。
所以会是
@property (strong, nonatomic) NSMutableArray *childrenArray;
在某些情况下,孩子可以通过以下方式迭代
for (JJNode *node in self.childrenArray) { ... }
但是使用这个新数组,我们还能继续使用parent.leftChild
andparent.leftChild = newNode
吗?
我想知道这是否是一种好习惯,因为它看起来像是不同parent.leftChild
的(JJNode *)[parent objectAtIndex: 0]
对象,但实际上是同一件事。但是如果我们继续做下去,我们可以拥有伪属性来实现它吗?
看起来我们可以实际使用@property (strong, nonatomic) JJNode *leftChild;
和更改 getter 和 setter 以实际使用数组,但是会有两个额外的实例变量。没有ivars可以吗?或者我们可以定义 2 个方法,以便parent.leftChild = newNode
实际调用一些 setter 方法,并parent.leftChild
调用一个 getter?