我一直在試圖調試我的代碼的問題,只是出現了一個奇怪的現象。在調試區發現這個當斷點被觸發:我的NSDictionary以某種方式有一個密鑰的多個值
我是在觀察,有多個值此鍵糾正:@"6898173"
?
這可能是什麼原因造成的?我不使用字符串字面值來設置這些鍵值對,而是通過獲取從GKSession
傳輸中檢索並解碼的字符串的子字符串。
我仍然有這個在xcode的調試區域,incase theres其他任何可能有幫助。
編輯:
按要求,這裏是將創造兩個字符串之一(另一個是在較早時間創建)代碼:
[carForPeerID setObject:[[MultiScreenRacerCarView alloc] initWithImage:[UIImage imageNamed:@"simple-travel-car-top_view"] trackNumber:[[[NSString stringWithUTF8String:data.bytes] substringWithRange:range] intValue]] forKey:[[NSString stringWithUTF8String:[data bytes]] substringFromIndex:9]];
在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];
對不起,很難看。它只有一條線。
你可以嘗試打印每個鍵的內存地址嗎? –
@GabrielePetronella key [0]:'0x08779290' key [1]:'0x09298de0' –
顯然即使兩個字符串具有相同的值,但它們是兩個不同的對象。奇怪,雖然... –