gpt4 book ai didi

ios - 如何检查 NSMutableArray 数组中是否已经有 (__bridge id) 对象

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:16 28 4
gpt4 key购买 nike

我正在尝试将 ABRecordRef 项添加到我的 NSMutableArray 中。刚了解到需要使用 (_bridge id) 将 C TypeDef 转换为 Objective-C id 类型。因此,在将新项添加到数组之前,我想检查该对象是否已经在数组中。因此,我尝试使用 [nsmutablearray containsObject] 但它似乎不起作用。重复项仍会添加到数组中。你知道这里可能出了什么问题吗?

-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{
if (![_buddiesList containsObject:(__bridge id)person]) {
[_buddiesList addObject:(__bridge id)person];
NSLog(@"Added");
}
return NO;
}

最佳答案

ABRecordRef 没有 NS 等价物,-containsObject: 只是在其所有对象上调用 -isEqual: 以确定是否存在是否已包含重复项,因此您的方法无效。

我建议围绕 ABRecordRef 编写一个包装类,并在那里实现您自己的 -isEqual: 方法。

更新:
正如@omz 所指出的,它确实 有效,因为 CFEqual() 被调用了,谢谢!不过,在 ABRecordRef 周围使用包装类仍然是一个好主意。

关于ios - 如何检查 NSMutableArray 数组中是否已经有 (__bridge id) 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14365282/

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