çizgisinde düşünüyorum bazı durumlarda kullanmak isteyebilirsiniz başka yöntemdir:
NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ];
if ([validNames indexOfObject:myString].location != NSNotFound)
{
// The myString is one of the names in the valid names array
}
Yoksa isimlerin büyük miktarda varsa dizide bir nesne bir diziden daha hızlı olduğundan ((O(Log N)
vs O(N)
)
bulunduğundan
NSSet
kullanabilirsiniz.
NSSet
ve
NSArray
kullanımı
isEqual:
hangi
NSString
örnekleri için
isEqualToString:
arayacak çünkü
NSSet * validNamesSet = [NSSet setWithArray:validNames];
if ([validNamesSet containsObject:myString])
{
// This is faster than indexOfObject for large sets
}
Bu yöntemler işe.
'isEqualToString' yöntemiyle for döngüsünün aksine 'location' yaklaşımını ne zaman kullanmak istersiniz? – Pavan
@Pavan Bir for döngüsünden (daha az kod satırı) 'indexOfObject' kullanmak biraz daha kolay. Bunun dışında çok az fark var. NSSet yöntemi büyük kümeler için bir dizi olsa da döngüden daha hızlı olabilir, ancak çoğu durumda önemli olmayacaktır. – Robert