gpt4 book ai didi

ios - NSSet 的 NSArray 在 NSLog 中不显示任何内容

转载 作者:行者123 更新时间:2023-11-28 19:21:49 31 4
gpt4 key购买 nike

NSMutableSet *intersection = [NSMutableSet setWithArray:newsmall];

//this shows an array of newsmall as expected
NSLog(@"intersection %@", intersection);

[intersection intersectSet:[NSSet setWithArray:newnewbig]];

//this shows nothing
NSLog(@"intersection %@", intersection);

//this shows an array of newnewbig as expected
NSLog(@"newnewbig %@", newnewbig);

NSArray *arrayfour = [intersection allObjects];

//this shows nothing
NSLog(@"arrayfour %@", arrayfour);

newsmall 和 newnewbig 有一些匹配的字符串,所以我希望 arrayfour 显示几个字符串。

我做错了什么?

最佳答案

问题在于您对 intersectSet 工作原理的理解。

我认为您希望它比较 newsmall 和 newnewbig 的字符串内容,但它真正做的是比较对象地址。

在执行 intersectSet 调用之前执行此操作:

NSUInteger index = 0;
for(NSString * aString in newsmall)
{
NSLog( @"newsmall string %d is %p %@", index++, aString, aString );
}

index = 0;
for(NSString * aString in newnewbig)
{
NSLog( @"newnewbig string %d is %p %@", index++, aString, aString );
}

intersectSet 只有在地址(格式中的 %p)匹配时才会起作用。字符串内容可能匹配,但 intersectSet 关心的是字符串地址。

实际上,您的解决方案是您需要采用不同的方式来比较集合之间的字符串。

关于ios - NSSet 的 NSArray 在 NSLog 中不显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8294621/

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