2010-10-18 19 views

Odpowiedz

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

która sprawdza czy tablica nie jest zerowa, a jeśli nie - Sprawdź, czy to nie jest pusty.

+5

to działa, ale to nie jest całkowicie bez skazy: 'array.count' powinno być' [count array] 'skoro jesteś nie ma tutaj właściwości (var). – Rengers

+6

Nope - 'array.count' jest w porządku w tym kontekście. Syntaktycznie, tak czy inaczej. Stylistycznie? Obecnie nie zaleca się stosowania żadnego szczególnego standardu. – bbum

+4

to jest to samo co 'if (! Array.count)' – user102008

10

można spróbować jak to

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

Jeśli tablica jest zerowa, to będzie 0, a także, jako zerowe mapy na 0; dlatego sprawdzenie, czy tablica istnieje, jest niepotrzebne.

Ponadto, nie należy używać array.count, jak niektórzy sugerowali. Może on -pracować-, ale nie jest własnością i będzie napędzał każdego, kto odczyta twoje nakrętki kodu, jeśli zna różnicę między właściwością a metodą.

AKTUALIZACJA: Tak, zdaję sobie sprawę, że lata później liczba jest teraz oficjalnie własnością.

2

Jak nil mapy na 0, co odpowiada NO, najbardziej elegancki sposób powinny być

if (![array count]) 

The '==' operator nie jest konieczne.

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

Możesz również wykonać ten rodzaj testu używając , jeśli (n> 0). Jeśli obiekt danych nie jest formalną tablicą, może działać lepiej.

1

nieważne i puste nie są te same rzeczy, proponuję traktować je inaczej

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

Czy mógłbyś przybliżyć różnicę między warunkami, w którym to przypadku połączenie? – mavericks

3

Od Jabłko dodaje nową właściwość firstObject do NSArray, to też działa.

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

Swift 3

Jak w najnowszej wersji szybkiej 3 możliwość porównania ewentualne, z> i < nie jest dostępna

nadal jest możliwe, aby porównać ewentualne, z ==, więc najlepszym sposobem sprawdzenia, czy opcjonalna tablica zawiera wartości, jest:

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

według liczby tablic

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

Istnieją również inne sposoby i można sprawdzić tutaj link to the answer

0
if (array == nil || array.count == 0 || [array isEqaul [NSNull Null]]) 
Powiązane problemy