gpt4 book ai didi

IOS/objective-C : Detect What is Different About Arrays

转载 作者:行者123 更新时间:2023-11-29 00:31:56 26 4
gpt4 key购买 nike

我有一个错误,动态创建的 NSNumbers 数组没有产生预期的结果。为了查看数组中的内容,我已将其注销。我还手动创建了一个等效的数组,它确实产生了预期的结果并将其注销。这些元素在记录时看起来是相同的,但当我进行 isEqualArray 测试时,它们是不同的。谁能建议一种方法来检测不同之处,以便我可以修复它?感谢您的任何建议。

这是注销数组的代码:

    -(NSMutableDictionary *) getExistingContactsWithUIDs:(NSArray *)uids
{
int numElements = (int) uids.count;
NSLog(@"num elements in uids%d",numElements); //logs as 3
NSLog(@"first elementzzz%@zzz",uids[0]); //logs as zzz2101zzz
NSLog(@"2nd elementzzz%@zzz",uids[1]); //logs as zzz2098zzz
NSLog(@"3rd elementzzz%@zzz",uids[2]);//logs as zzz2100zzz

//Manually created array
NSArray*ualtids = @[@2101, @2098, @2100];
int numElementsAlt = (int) ualtids.count;
NSLog(@"num elements in uids%d",numElementsAlt); //logs as 3
NSLog(@"first alt elementzzz%@zzz",ualtids[0]);//logs as zzz2101zzz
NSLog(@"2nd alt elementzzz%@zzz",ualtids[1]);//logs as zzz2098zzz
NSLog(@"3rd alt elementzzz%@zzz",ualtids[2]);//logs as zzz2100zzz
//code to compare says they are different
if ([uids isEqualToArray:ualtids]) {
NSLog(@"Arrays same");
}
else{
NSLog(@"Arrays different ");
}
//Finally the code that creates the uids array is:
NSMutableArray *newUIDs = [NSMutableArray array];
for (i=0;i<max;i++)
{
uid = importContact.cid;
[newUIDs addObject:uid];
}

最佳答案

[ObiWan Kenobi 的声音:]Uuuuu 使用 debugggerrrrr,Luuuuuuke!

问题是您正在使用 NSLog 命令。这调用了 description 所以你不知道 NSArray 元素的类是什么。一个 NSNumber 包装 1 和一个 NSString @"1" 记录完全相同。所以你什么也学不到。

但如果您只是在配置数组后在断点处暂停调试器,则可以在变量列表中检查它们,如下所示:

enter image description here

这两个数组(arr1arr2)log 相同,但在变量列表中很明显,其中一个包含 NSStrings 和另一个包含 NSNumbers。

关于IOS/objective-C : Detect What is Different About Arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41536793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com