0
我想創建一個NSMutableDictionary,它在一個特定的對象上鍵入並映射到一個NSNumber。該對象來自第三方庫並且不實現copyWithZone方法。編譯器可以理解抱怨無法識別的選擇(copyWithZone)被髮送到對象,使用的代碼:hacky使用NSMutableDictionary映射不可複製的對象
[dictionary setObject:[NSNumber numberWithInt:index] forKey:someObject];
因爲我不想創建一個第三方庫對象我自己的copyWithZone方法,我不該我不需要知道如何複製,我遠離創建實現該方法的類別。
我的黑客是通過將其轉換爲long long存儲在一個NSNumber的內存地址:
[dictionary setObject:[NSNumber numberWithInt:index] forKey:[NSNumber numberWithLongLong:(long long)someObject]];
檢索值:
NSNumber *indexNumber = [dictionary objectForKey:[NSNumber numberWithLongLong:(long long)someObject]];
這似乎非常的hackish給我。什麼是更清晰的方式來處理對象到int的映射?
感謝指針 – rimsky 2012-01-12 23:15:36