NSTextCheckingResult
के लिये दस्तावेज को देख से मैं छाप अगर एक NSRegularExpression
खोज में कोई मुकाबला नहीं मिला था NSCheckingResult
के लिए सीमा संपत्ति अपने परीक्षण से {NSNotFound,0}
NSCheckingResult रेंज संपत्ति {NSNotfound, 0} पर सेट नहीं है?
पर सेट किया जाएगा कि नीचे मैं लग रहा है कोई मुकाबला नहीं है अगर है कि के तहत किया गया NSCheckingResult
रेंज {0,0}
पर सेट है। यह एक छोटा सा बिंदु है, लेकिन मैं सिर्फ यह समझना चाहता था कि यह कैसे काम कर रहा है।
// REGEXPRESSION
NSString *textBuffer = @"1234567890";
NSString *pattern = @"(([A-Z]+))";
NSRegularExpression *regExp = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];
NSTextCheckingResult *match = [regExp firstMatchInString:textBuffer options:0 range:NSMakeRange(0, [textBuffer length])];
// ERROR CHECK
if([match range].location == NSNotFound) NSLog(@"Match Not found");
NSLog(@"location: %d", [match range].location);
NSLog(@"length : %d", [match range].length);
// OUTPUT
location: 0
length : 0
संपादित करें: इस उदाहरण NSTextCheckingResult *match
में nil
करने के लिए सेट किया जा रहा है, जो शायद यही वजह है स्थान और लंबाई शून्य (शून्य वस्तु के लिए संदेश) लौट रहे हैं।
if(!match) NSLog(@"Match Not Found");
इसलिए मैं अनुमान लगा रहा हूँ कि NSNotFound
केवल जब वहाँ कई कैप्चर समूहों जहां यह एक खाली समूह का प्रतिनिधित्व कर रहे हैं लौटाया जाता है।
हां यह शून्य मैच की वजह से है। '{NSNotFound, 0} 'को' श्रेणी एट इंडेक्स: 'द्वारा वापस किया जा सकता है, जो उस समूह के लिए है जो मैच में भाग नहीं लेता था। – hoha
@ होहा अगर आप अपनी टिप्पणी को किसी उत्तर में ले जाते हैं, तो फ़ज़ीगोगोट इसे स्वीकार कर सकता है और इस प्रश्न को अनुत्तरित कतार से बाहर ले जा सकता है। –