Estoy revisando un código anterior en una de mis aplicaciones y estoy reparando el código en áreas que podrían ser potencialmente problemáticas.NSRange: range.location! = NSNotFound vs. range.length> 0
que estoy viendo una gran cantidad de código antiguo usando ...
NSRange range = //determine range here....
if(range.length > 0)
{
//do stuff
}
es que el código "fino", o debería cambiarlo a esto?
NSRange range = //determine range here....
if(range.location != NSNotFound)
{
//do stuff
}
¿Son estos dos métodos idénticos, esencialmente o no?
Interesante contraejemplo a la teoría de que comprobar la ubicación igual a NSNotFound y la longitud> 0 son esencialmente los mismos ... – MikeS
Para referencia aquí lo que la documentación tiene que decir para 'NSRegularExpressions': _Si el resultado devuelto es no nulo, entonces [rango de resultados] siempre será un rango válido, por lo que no es necesario compararlo con {NSNotFound, 0 }. Sin embargo, para algunas expresiones regulares (aunque no el patrón de ejemplo), algunos grupos de captura pueden o no participar en una coincidencia determinada. Si un grupo de captura determinado no participa en una coincidencia determinada, [resultado rangeAtIndex: idx] devolverá {NSNotFound, 0} ._ – Joe