मैं अपने किसी एक ऐप में कुछ पुराने कोड के माध्यम से जा रहा हूं और उन क्षेत्रों में कोड को ठीक कर रहा हूं जो संभावित रूप से समस्याग्रस्त हो सकते हैं।एनएसआरेंज: रेंज.लोकेशन! = एनएस नॉटफाउंड बनाम रेंज। लम्बाई> 0
मैं का उपयोग कर पुराने कोड का एक बहुत दिखाई दे रही है ...
NSRange range = //determine range here....
if(range.length > 0)
{
//do stuff
}
कि कोड "ठीक" है, या मैं इसे इस को बदलना चाहिए?
NSRange range = //determine range here....
if(range.location != NSNotFound)
{
//do stuff
}
क्या ये दो विधियां समान, अनिवार्य रूप से हैं या नहीं?
सिद्धांत के लिए दिलचस्प काउंटर उदाहरण है कि NSNotFound और लंबाई> 0 के बराबर स्थान की जांच करना अनिवार्य रूप से वही है ... – MikeS
यहां एक संदर्भ के लिए 'NSRegularExpressions'' के लिए प्रलेखन क्या कहना है: _ अगर परिणाम लौटाया गया है तो शून्य-शून्य है, तो [परिणाम सीमा] हमेशा वैध सीमा होगी, इसलिए इसे {NSNotFound, 0 के विरुद्ध तुलना करना आवश्यक नहीं है }। हालांकि, कुछ नियमित अभिव्यक्तियों के लिए (हालांकि उदाहरण पैटर्न नहीं) कुछ कैप्चर समूह किसी दिए गए मैच में भाग ले सकते हैं या नहीं भी हो सकते हैं। यदि किसी दिए गए कैप्चर समूह किसी दिए गए मैच में भाग नहीं लेता है, तो [परिणाम श्रेणी एट इंडेक्स: आईडीएक्स] {NSNotFound, 0} ._ – Joe