2008-11-02 9 views

उत्तर

85

उपयोग -[NSString rangeOfString:]:

- (NSRange)rangeOfString:(NSString *)aString; 

ढूंढता है और रिसीवर के भीतर एक दिया स्ट्रिंग की पहली आवृत्ति की सीमा देता है।

+8

और 'NSRange के समान लागू करता है जोड़ा। स्थान' वास्तविक सूचकांक है। – devios1

+1

'अगर (NSRange.location! = NSNotFound) 'तो आपको एक मैच मिला। –

18

मैंने मूल एनएसएसटींग ऑब्जेक्ट को विस्तारित करने के लिए एक श्रेणी लिखी। शायद आप लोग इसका संदर्भ दे सकते हैं। (आप भी अपने ब्लॉग में article भी देख सकते हैं।)

ExtendNSString.h:

#import <Foundation/Foundation.h> 

@interface NSString (util) 

- (int) indexOf:(NSString *)text; 

@end 

ExtendNSStriing.m:

#import "ExtendNSString.h" 

@implementation NSString (util) 

- (int) indexOf:(NSString *)text { 
    NSRange range = [self rangeOfString:text]; 
    if (range.length > 0) { 
     return range.location; 
    } else { 
     return -1; 
    } 
} 

@end 
+3

एनएसआरेंज का बेहतर उपयोग निम्नानुसार होना चाहिए 'कोड' - (int) अनुक्रमणिका: (एनएसएसटींग *) टेक्स्ट { एनएसआरेंज श्रेणी = [स्वयं श्रेणीऑफस्ट्रिंग: टेक्स्ट]; यदि (श्रेणी। स्थान! = NSNotFound) { वापसी सीमा। स्थान; } अन्य { वापसी -1; } } 'कोड' – loretoparisi

+0

अच्छा, साफ, पुन: उपयोग करने योग्य समाधान। और 2014 में इस तरह के बेहद सरल सहायक कार्यों को लिखने के लिए ऐप्पल को -1 वोट दिया। वे हमारे लिए जीवन क्यों आसान नहीं बना सकते? –

28

यदि आप सिर्फ इतना पता करना चाहते हैं जब स्ट्रिंग एक स्ट्रिंग शामिल बी ऐसा करने के लिए मेरे रास्ते का उपयोग करें।

#define contains(str1, str2) ([str1 rangeOfString: str2 ].location != NSNotFound) 

//using 
NSString a = @"PUC MINAS - BRAZIL"; 

NSString b = @"BRAZIL"; 

if(contains(a,b)){ 
    //TO DO HERE 
} 

यह कम पढ़ी जा सकती है, लेकिन प्रदर्शन

+1

बस मुझे क्या चाहिए --- धन्यवाद! –

+0

वाकई कमाल! –

1

को बेहतर बनाता है मैं जानता हूँ कि यह देर हो चुकी है, लेकिन मैं एक वर्ग है कि इस विधि और कई अन्य लोगों जावास्क्रिप्ट स्ट्रिंग तरीकों
https://github.com/williamFalcon/WF-iOS-Categories