Ios 我的NSDictionary对一个键有多个值

Ios 我的NSDictionary对一个键有多个值,ios,nsdictionary,nsmutabledictionary,Ios,Nsdictionary,Nsmutabledictionary,我一直在尝试调试代码中的一个问题,但遇到了一个奇怪的现象。在触发断点时,在调试区域中发现以下内容: 我注意到此键有多个值:@“6898173”,对吗 可能的原因是什么?我没有使用字符串文字设置那些键值对,而是通过获取从GKSession传输中检索和解码的字符串的子字符串 我仍然在xcode的调试区域中设置了这个,以防还有其他可能有用的东西 编辑: 根据请求,以下是创建两个字符串之一的代码(另一个是在较早的时候创建的): data中的字符串可能如下所示: car00.0146898173 编辑:

我一直在尝试调试代码中的一个问题,但遇到了一个奇怪的现象。在触发断点时,在调试区域中发现以下内容:

我注意到此键有多个值:
@“6898173”
,对吗

可能的原因是什么?我没有使用字符串文字设置那些键值对,而是通过获取从
GKSession
传输中检索和解码的字符串的子字符串

我仍然在xcode的调试区域中设置了这个,以防还有其他可能有用的东西

编辑:

根据请求,以下是创建两个字符串之一的代码(另一个是在较早的时候创建的):

data
中的字符串可能如下所示:
car00.0146898173

编辑:

发送数据的代码:

[self.currentSession sendData:[[NSString stringWithFormat:@"car%i%@%@", [(MultiScreenRacerCarView *)[carForPeerID objectForKey:peerID] trackNumber], speed, [(MultiScreenRacerCarView *)[carForPeerID objectForKey:peerID] owner]] dataUsingEncoding:NSUTF8StringEncoding] toPeers:@[(NSString *)[peersInOrder objectAtIndex:(self.myOrderNumber + 1)]] withDataMode:GKSendDataReliable error:nil];

对不起,很难读。它只有一行。

您看到的是一个调试器“feechure”。当您拥有可变字典并对其进行修改时,调试器可能不会向您显示对象的正确视图


要可靠地显示
NSMutableArray
NSMutableDictionary
的内容,请切换到控制台并键入
po carForPeerID

是否可以尝试打印每个键的内存地址?@GabrielePetronella键[0]:
0x08779290
键[1]:
0x09298de0
显然,即使两个字符串具有相同的值,它们也是两个不同的对象。虽然很奇怪…@GabrielePetronella我原本以为结尾可能有一个空格之类的,但事实并非如此。这也是为什么我提到我不使用字符串文字,而是通过一个过程来获取字符串。是否有可能是解码问题导致字符串不完全相同?我创建这个字符串的代码会有帮助吗?@GabrielePetronella see editSee,这就是为什么我应该写更多的答案,更少的评论:)@HotLicks我不否认它没有显示我想看到的内容。请阅读我上面的粗体评论。这就是现在的问题。奇怪的字符不会出现在调试区域,我理解这一点。我之所以不记录字典的全部内容,是因为我不确定是否可以重现这种情况,但我会尝试。@SantaClaus-上面的视图似乎是调试变量显示窗口。这种观点不可信。您还没有解释您正在接收什么“消息”或如何“记录”它们。@SantaClaus-什么是“它”?@HotLicks“它”是调试区域。是,来自调试变量显示窗口。是的,这是不可信的,你已经说了,我已经承认了。在问题中,我说我正在使用
GKSession
将数据(“消息”)从一个设备发送到另一个设备。我正在记录
GKSession
数据“消息”中包含的字符串。
[self.currentSession sendData:[[NSString stringWithFormat:@"car%i%@%@", [(MultiScreenRacerCarView *)[carForPeerID objectForKey:peerID] trackNumber], speed, [(MultiScreenRacerCarView *)[carForPeerID objectForKey:peerID] owner]] dataUsingEncoding:NSUTF8StringEncoding] toPeers:@[(NSString *)[peersInOrder objectAtIndex:(self.myOrderNumber + 1)]] withDataMode:GKSendDataReliable error:nil];