在的ObjectiveC
问题描述:
类
使用别名在变量名我有一个名为节点在的ObjectiveC
@interface Node : NSObject
{
Node* _prev;
Node* _next;
id _data;
}
类,我想使用双向链表和二叉搜索树。
但在二叉搜索树,我想改变_prev和_next使用_Left和_right,
我不知道我是否可以使用别名_Left for _prev and _right for _next这样我的Node类可以用在双链表和二进制搜索树。
任何建议,将不胜感激!
答
您应该将这些字段定义为属性,而不是实例变量。
@interface Node : NSObject
@property (nonatomic, strong) Node *prev;
@property (nonatomic, strong) Node *next;
@property (nonatomic, strong) Node *left;
@property (nonatomic, strong) Node *right;
@property (nonatomic, strong) id data;
@end
然后,在您的实施,实现对左边和右边的自定义getter和setter,像这样......
- (Node *)left {
return _prev;
}
- (void)setLeft:(Node *)left {
_prev = left;
}
- (Node *)right {
return _next;
}
- (void)setRight:(Node *)right {
_next = right;
}
通过定义为左,右两个getter和setter,你避免(自动)综合实例变量,这些变量将不被使用。