Ordered NSMapTable の iOS には Collection がないため (そもそもなぜコレクションが必要なのか長い話:))、それをサブクラス化し、自分で実装しようとしました。
残念ながら、私はいくつかの奇妙な問題に直面しています:
プロパティを追加したり、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