我正在构建一个类 XXTreeNode:
@interface XXTreeNode : NSObject<XXSearching>
@property XXTreeNode *parent;
@property NSMutableArray *children;
@property id data; // problem here
@property(readonly) int count;
-(XXTreeNode*)initWithData: (id)data;
-(bool)addChild: (XXTreeNode*)child;
-(bool)removeSelf;
-(NSArray*)searchChildren: (id)content; // problem here
-(XXTreeNode*)searchChildrenFirst: (id)content; // problem here
@end
我希望这个类是通用的——我可以在“数据”字段中存储任何类型。在 C# 中,我可以很容易地做到这一点
class Node<T>
然后我可以用我想要的任何类型创建这样的类:
Node<String> a = new Node<String>();
Node<int> b = new Node<int>();
但是如何在 Objective-C 中做这样的事情呢?
顺便说一句:我知道有一个“id”类型,你可以看到我已经将我想要通用的字段声明为“id”,但是“id”不适合像 NSInteger 或 unichar 这样的简单类型。