我有一堆Lesson
,这个类很好用。有一个视图控制器与这些课程一起工作。该控制器需要知道lesson
的上传状态,因此我们有一个带有Lesson
作为关键字的NSDictionary和一个具有上载状态百分比的NSNumber
。使用一个对象作为NSDictionary的关键字
这是一个问题,因为在插入Lesson
之后,您希望稍后在相同的Lesson
(可能在cellForRowAtIndexPath:
)上查找以取得进展。这不起作用,因为键在NSDictionary中复制。
是好形式保存和取钥匙像这样的东西:
NSNumber *key = [NSNumber numberWithUnsignedInt:[obj hash]];
[dict setObject:@"... upload progress" forKey:key];
或者有没有更好的方法?
Works 100%,我现在正在使用这个。谢谢。 – 2012-07-18 23:12:54
'NSMapTable'也是一个选项。它的行为像一个'NSDictionary',但允许在其他选项之上对其键的弱引用。 – 2014-05-12 19:53:24
我有一个简单的代码示例下面的'NSMapTable'。 – SmallChess 2016-10-11 08:17:08