how to check if NSString = a specific string value?

前端 未结 2 1037
清酒与你
清酒与你 2020-12-05 04:01

Hi I am woundering if you can check to see if a NSString equals a specific value say for instance a name of a person?

I am thinking along the lines of



        
相关标签:
2条回答
  • 2020-12-05 04:16
    if ([mystring isEqualToString:@"Johns"]){
        //do some stuff in here
    }
    
    0 讨论(0)
  • 2020-12-05 04:34

    Here is another method you might want to use in some circumstances:

    NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ];
    
    if ([validNames indexOfObject:myString].location != NSNotFound) 
    {
        // The myString is one of the names in the valid names array
    }
    

    Or if you have a large amount of names in the array you could use a NSSet, since finding an object is faster than in an array ((O(Log N) vs O(N))

    NSSet * validNamesSet = [NSSet setWithArray:validNames];
    
    if ([validNamesSet containsObject:myString]) 
    {
        // This is faster than indexOfObject for large sets
    }
    

    These methods work because NSSet and NSArray use isEqual: which will call isEqualToString: for NSString instances.

    0 讨论(0)
提交回复
热议问题