我建立一個類XXTreeNode:如何在Obj-C中構建一個強類型容器?
@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。