3
    NSDictionary *topic = [spaces objectAtIndex:i];
    NSInteger topicid = [topic valueForKey:@"TOPICID"];

当我运行它并打印出主题时,我得到以下信息:

Printing description of topic:
<CFDictionary 0xdb2a70 [0x30307a00]>{type = mutable, count = 2, capacity = 12, pairs = (
    10 : <CFString 0xdb5300 [0x30307a00]>{contents = "TOPICID"} = 29
    12 : <CFString 0xdb53a0 [0x30307a00]>{contents = "TOPICNAME"} = <CFString 0xdb5360 [0x30307a00]>{contents = "zzzzzzzz"}
)}

但是,当我查看 topicid 时,该值始终是内存地址。我究竟做错了什么?

4

3 回答 3

7

也许这个值实际上是一个 NSNumber。你会得到这个使用:

NSInteger topicid = [[topic objectForKey:@"TOPICID"] intValue];
于 2009-10-15T14:24:33.400 回答
0

字典只能包含对象,不能包含原语。无论存储在那里(正如 Xetius 建议的那样)都可能以某种形式包装。看起来 TOPICID 是一个 NSString。

于 2009-10-15T15:17:40.657 回答
0

在数组输出中,您可以看到 topicID 是一个字符串值(NSString)。因此,您可能希望将其设置为 Xetius 描述的 - 但不是因为它是 NSNumber,因为 NSString 具有“intValue”方法。

于 2009-10-15T15:17:58.610 回答