2011-09-01 3 views

Trả lời

135
if ([mystring isEqualToString:@"Johns"]){ 
    //do some stuff in here 
} 
3

Đây là một phương pháp khác bạn có thể muốn sử dụng trong một số trường hợp:

NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ]; 

if ([validNames indexOfObject:myString].location != NSNotFound) 
{ 
    // The myString is one of the names in the valid names array 
} 

Hoặc nếu bạn có một số lượng lớn tên trong mảng, bạn có thể sử dụng NSSet, vì việc tìm đối tượng nhanh hơn trong mảng ((O(Log N) so với O(N))

NSSet * validNamesSet = [NSSet setWithArray:validNames]; 

if ([validNamesSet containsObject:myString]) 
{ 
    // This is faster than indexOfObject for large sets 
} 

Những phương pháp làm việc vì NSSetNSArray sử dụng isEqual: mà sẽ gọi isEqualToString: cho NSString trường.

+0

Khi nào bạn muốn sử dụng phương pháp 'vị trí' như trái ngược với vòng lặp for với phương thức' isEqualToString'? – Pavan

+1

@Pavan Việc sử dụng 'indexOfObject' dễ dàng hơn một chút so với vòng lặp for (ít dòng mã hơn). Khác hơn là có rất ít sự khác biệt. Phương pháp NSSet có thể nhanh hơn vòng lặp mặc dù một mảng cho các tập hợp lớn, nhưng đối với hầu hết các trường hợp, nó sẽ không đáng kể. – Robert