objective-c – 在删除对象之前,我应该检查一个对象是否存在吗?

objective-c – 在删除对象之前,我应该检查一个对象是否存在吗?,第1张

概述假设我有一个对象someObject和一个NSMutableArray * someArray.我不确定someObject是否在数组中,但如果是,我想删除它.有两种选择: 情况1: if([someArray indexOfObject:someObject] != NSNotFound) [someArray removeObject:someObject]; 案例2: [someArr 假设我有一个对象someObject和一个NSMutableArray * someArray.我不确定someObject是否在数组中,但如果是,我想删除它.有两种选择:

情况1:

if([someArray indexOfObject:someObject] != NSNotFound)   [someArray removeObject:someObject];

案例2:

[someArray removeObject:someObject];

在情况2中,如果数组中不存在该对象,则不会发生任何事情.我的问题是,案例2是否更有效,因为在案例1中我必须搜索数组并查看它是否存在,如果存在,我将其删除,但我猜是removeObject:再次搜索数组宾语?

解决方法

but I’m guessing removeObject: searches the array again for that object?

嗯,是的,它必须.没有找到它就无法在集合中找到对象.* The docs甚至这样说:

This method uses indexOfObject: to locate matches and then removes them by using removeObjectAtIndex:. […] If the array does not contain anObject,the method has no effect (although it does incur the overhead of searching the contents).

您当然可以模仿框架并在搜索后立即使用removeObjectAtIndex:如果您愿意.

*这比它可能更快(最坏的是O(log(N))而不是O(N))因为NSArrays aren’t arrays.

总结

以上是内存溢出为你收集整理的objective-c – 在删除对象之前,我应该检查一个对象是否存在吗?全部内容,希望文章能够帮你解决objective-c – 在删除对象之前,我应该检查一个对象是否存在吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1071129.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存