यहाँ की तर्ज पर सोच रहा हूँ एक और तरीका है आप कुछ परिस्थितियों में उपयोग करने के लिए चाहते हो सकता है: या
NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ];
if ([validNames indexOfObject:myString].location != NSNotFound)
{
// The myString is one of the names in the valid names array
}
आप नाम की एक बड़ी राशि है, तो सरणी में आप NSSet
का उपयोग कर सकते हैं, क्योंकि ऑब्जेक्ट ढूंढना किसी सरणी से तेज है ((O(Log N)
बनाम O(N)
)
NSSet * validNamesSet = [NSSet setWithArray:validNames];
if ([validNamesSet containsObject:myString])
{
// This is faster than indexOfObject for large sets
}
इन तरीकों काम करते हैं क्योंकि NSSet
और NSArray
उपयोग isEqual:
जो NSString
उदाहरण के लिए isEqualToString:
कॉल करेंगे।
'isEqualToString' विधि' के साथ लूप के विपरीत आप 'स्थान' दृष्टिकोण का उपयोग कब करना चाहते हैं? – Pavan
@Pavan लूप (कोड की कम पंक्तियों) की तुलना में 'indexOfObject' का उपयोग करना थोड़ा आसान है। इसके अलावा थोड़ा अंतर है। एनएसएससेट विधि बड़े सेट के लिए सरणी हालांकि लूपिंग से तेज हो सकती है, लेकिन ज्यादातर मामलों के लिए यह महत्वपूर्ण नहीं होगा। – Robert