由于 iOS 中没有 Collection 用于 Ordered NSMapTable(长篇大论,为什么我首先需要一个 :))我尝试将它子类化并自己实现一个。
不幸的是,我面临一些奇怪的问题:
我无法添加属性,甚至无法覆盖 init 方法。
我总是收到一个例外提示:
未捕获的异常::
-[NSConcreteMapTable setKeyIndexArray:]
无法识别的选择器发送到实例
这是我的代码:
OrderedMapTable.h:
@interface OrderedMapTable : NSMapTable
-(id) objectAtIndex:(NSUInteger)index;
-(id) keyAtIndex:(NSUInteger)index;
@end
OrderedMapTable.m:
@interface OrderedMapTable()
@property (nonatomic, strong) NSMutableArray* keyIndexArray;
@end
@implementation OrderedMapTable
+(id)strongToStrongObjectsMapTable
{
OrderedMapTable* orderedMapTable = [super strongToStrongObjectsMapTable];
orderedMapTable.keyIndexArray = [[NSMutableArray alloc] init];
return orderedMapTable;
}
...
@end