2010-10-18 26 views

Respuesta

96
if (!array || !array.count){ 
    ... 
} 

que comprueba si matriz no es nulo, y si no - Comprobar si no está vacío.

+5

Funciona pero no es completamente impecable: '' array.count' deben ser [recuento de matriz] 'ya que eres no se trata de una propiedad (var) aquí. – Rengers

+6

No, "array.count" está bien en ese contexto. Sintácticamente, de todos modos. Estilísticamente? No se recomienda ningún estándar en particular en este momento. – bbum

+4

esto es lo mismo que 'if (! Array.count)' – user102008

10

que puede probar como esta

if ([array count] == 0) 
25
if ([array count] == 0) 

Si la matriz es nula, será 0, así como mapas de cero a 0; por lo tanto, no es necesario verificar si la matriz existe.

Además, no se debe utilizar array.count como algunos sugirieron. Puede -work-, pero no es una propiedad, e impulsará cualquiera que lea sus nueces de código si saben la diferencia entre una propiedad y un método.

ACTUALIZACIÓN: Sí, soy consciente de que años más tarde, el recuento es ahora oficialmente una propiedad.

2

mapas Como cero a 0, lo que equivale NO, la forma más elegante debe ser

if (![array count]) 

el operador '==' no es necesario.

4
if (array == (id)[NSNull null] || [array count] == 0) { 
    NSLog(@"array is empty"); 
} 
1

También puede hacer este tipo de prueba usando si (nrow> 0). Si el objeto de datos no es formalmente una matriz, es posible que funcione mejor.

1

nula y vacía no son las mismas cosas, le sugiero que los tratan de manera diferente

if (array == [NSNull null]) { 
    NSLog(@"It's null"); 
} else if (array == nil || [array count] == 0) { 
    NSLog(@"It's empty"); 
} 
+0

Podría indicar la diferencia entre ambas condiciones, en qué caso cuál de ellas ¿llamada? – mavericks

3

Dado que Apple ha añadido la nueva propiedad firstObject a NSArray, esto también funciona.

if (array.firstObject == nil) 
{ 
    // The array is empty 
} 
1

Swift 3

Al igual que en la última versión de 3 rápida la capacidad de comparar con los opcionales> y < de anticipación

Todavía es posible comparar opcionales con ==, por lo La mejor forma de comprobar si un conjunto opcional contiene valores es:

if array?.isEmpty == false { 
    print("There are objects!") 
} 

según el recuento de conjuntos

if array?.count ?? 0 > 0 { 
    print("There are objects!") 
} 

Hay otras maneras también, y se puede comprobar aquí link to the answer

0
if (array == nil || array.count == 0 || [array isEqaul [NSNull Null]]) 
Cuestiones relacionadas