gpt4 book ai didi

objective-c - iOS indexOfObjectIdenticalTo : not working for strings

转载 作者:行者123 更新时间:2023-11-28 18:04:15 27 4
gpt4 key购买 nike

我看到过关于 NSArray 的 indexOfObjectIdenticalTo: 方法的类似问题,但我希望我的提问能得到简单的答案。搜索以编程方式构建的字符串是否无用?

NSArray* theArray = [[NSArray alloc] initWithObjects:@"John", nil];
NSString* searchString1 = @"John";
NSString* stringComponent = @"Jo";
NSString* searchString2 = [stringComponent stringByAppendingFormat:@"hn"];

BOOL testContains1 = [theArray containsObject:searchString1];
int testIndex1 = [theArray indexOfObjectIdenticalTo:searchString1];
BOOL testContains2 = [theArray containsObject:searchString2];
int testIndex2 = [theArray indexOfObjectIdenticalTo:searchString2];

在上面的示例中,testContains1testContains2 都返回相同的值,即true。但是 testIndex1testIndex2 不同; testIndex1 为 0,因为它按预期在索引 0 处找到了一个相同的对象,但不幸的是 testIndex2 为 2147483647 (NSNotFound)。

最佳答案

关于 indexOfObjectIdenticalTo: 的文档说:

Objects are considered identical if their object addresses are the same.

对于具有相同内容但构造不同的对象,情况显然不是这样。

在这种情况下,您需要使用 indexOfObject:,这将为您提供从 isEqual: 返回 YES 的对象的最低索引> 方法。

关于objective-c - iOS indexOfObjectIdenticalTo : not working for strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11473583/

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