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,该值始终是一个存储器地址。我在做什么错了?

有帮助吗?

解决方案

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

NSInteger topicid = [[topic objectForKey:@"TOPICID"] intValue];

其他提示

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

在阵列输出,可以看到topicID是一个字符串值(的NSString)。所以,你会希望将其设置为Xetius描述 - 但不是因为它是一个NSNumber,因为的NSString有一个“的intValue法”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top