代码之家  ›  专栏  ›  技术社区  ›  gargantuan

如何在NSarray中找到字符串?

  •  18
  • gargantuan  · 技术社区  · 16 年前

    这感觉像是一个愚蠢的问题,但我怎么能在 NSArray ?

    我试着用

    [array indexOfObjectIdenticalTo:myString]
    

    但这就要求斯汀有相同的地址。

    有人知道怎么做吗?

    4 回复  |  直到 12 年前
        1
  •  50
  •   Peter Hosey    16 年前

    你想要 the indexOfObject: method ,它通过向数组中的每个对象发送 isEqual: 消息。

        2
  •  13
  •   bbum    16 年前

    彼得的回答是正确的。

    另外一个注意事项:如果数组中有大量的字符串, -indexOfObject: 将进行线性搜索。这可能被证明是一个性能瓶颈,您应该考虑使用不同的容器;NSset或NSDictionary,可能(取决于字符串的含义)。

    另一个问题是字符串是否都相对相似和/或相对较长。

    当然,在使用分析工具证明您有性能问题之前,不要费心优化任何东西。

        3
  •  4
  •   6 1    14 年前

    可以使用nsorderset作为容器,nsorderset类引用中的over视图如下:

    nsorderedset及其子类nsmutableorderedset声明对象有序集合的编程接口。

    nsorderedset为不同对象的静态集声明编程接口。创建静态集合的时候,您可以建立一个静态集合的条目,然后可以修改条目。另一方面,nsmutableorderedset为不同对象的动态集声明了一个编程接口。动态“或可变”设置允许随时添加和删除条目,并根据需要自动分配内存。

    当元素的顺序很重要时,您可以使用有序集作为数组的替代方法,并且在测试对象是否包含在集合中时,性能是一个考虑因素,对数组成员身份的测试比对集合成员身份的测试慢。

    参观 http://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSOrderedSet_Class/Reference/Reference.html

        4
  •  1
  •   ViruMax    12 年前

    包容对象:

    返回一个布尔值,该值指示给定对象是否存在于数组中。

    • (bool)containsObject:(id)对象 参数 无对象的 物体。

    返回值 如果数组中存在对象,则为“是”,否则为“否”。

    讨论

    此方法通过向数组的每个对象发送isequal:message(并将anObject作为参数传递给每个isequal:message)来确定数组中是否存在对象。

    宣布在

    nSalp.h

    推荐文章