【问题标题】:How might I check if a particular NSString is present in an NSArray?如何检查 NSArray 中是否存在特定的 NSString?
【发布时间】:2011-11-15 20:24:55
【问题描述】:

我如何检查一个特定的 NSString 是否在 NSArray 中 presnet?

【问题讨论】:

    标签: iphone objective-c xcode nsstring nsarray


    【解决方案1】:

    你可以这样做,

    NSArray* yourArray = [NSArray arrayWithObjects: @"Str1", @"Str2", @"Str3", nil];
    if ( [yourArray containsObject: yourStringToFind] ) {
        // do found
    } else {
        // do not found
    }
    

    【讨论】:

      【解决方案2】:

      Iteration 或 containsObject 是 order n 查找方式。

      如果您想要恒定时间查找,您还可以维护一个像 NSSet 或 NSHashTable 这样的哈希表,但这会增加空间但节省时间。

      NSArray* strings = [NSArray arrayWithObjects: @"one", @"two", @"three", nil];
      NSSet *set = [NSSet setWithArray:strings];
      
      NSString* stringToFind = @"two";
      NSLog(@"array contains: %d", (int)[strings containsObject:stringToFind]);
      NSLog(@"set contains: %d", (int)[set containsObject:stringToFind]);   
      

      【讨论】:

        【解决方案3】:

        取决于您的需求。 indexOfObject 如果你关心平等(很可能),或者indexOfObjectIdenticalTo 如果你关心它实际上是同一个对象(即相同的地址)。

        来源:

        【讨论】:

          猜你喜欢
          • 2018-11-02
          • 2011-06-09
          • 1970-01-01
          • 2011-08-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多