2010-10-18 4 views
48

Я хочу проверить, пуст ли мой массив или null, и на базе которого я хочу создать условие, например.Как проверить, является ли массив пустой или пустой?

if(array == EMPTY){ 
//do something 
} 

Надеюсь, что я понимаю, о чем я прошу, просто нужно проверить, не пуст ли мой массив?

С уважением

ответ

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

, который проверяет, если массив не ноль, а если нет - проверить, если он не пуст.

+5

Это работает, но это не совсем безупречно: 'array.count' должен быть' [число массива] ', так как вы не имея отношения к собственности (var) здесь. – Rengers

+6

Nope - 'array.count' в этом контексте просто отлично. Во всяком случае, синтаксически. Стилистически? В настоящее время не рекомендуется использовать какой-либо конкретный стандарт. – bbum

+4

это то же самое, что 'if (! Array.count)' – user102008

10

вы можете попробовать, как этот

if ([array count] == 0) 
7

Просто чтобы быть действительно многословным :)

if (array == nil || array.count == 0) 
25
if ([array count] == 0) 

Если массив равен нулю, то это будет 0, а, как нулевыми карты 0; поэтому проверка того, существует ли массив, не требуется.

Кроме того, вы не должны использовать array.count, как предложено. Это может работать, но это не свойство, и будет приводить всех, кто читает ваши кодовые орехи, если они знают разницу между свойством и методом.

ОБНОВЛЕНИЕ: Да, я знаю, что спустя годы счет теперь официально является собственностью.

2

Как нильполугруппы карты до 0, что равно NO, самый элегантный способ должен быть

if (![array count]) 

«==» оператор не требуется.

1

Вы также можете сделать такой тест с использованием если (nrow> 0). Если ваш объект данных формально не массив, он может работать лучше.

1

утратившим пусто не одно и то же, я предлагаю вам обращаться с ними по-разному

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

Не могли бы вы рассказать разницу между обоими условиями, в каком случае вызов? – mavericks

3

Поскольку Apple добавила новую firstObject свойство NSArray, это тоже работает.

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

Swift 3

Как и в последней версии стремительной 3 умение сравнивать с УСТРОЙСТВА> и < не Имеющийся

Это еще можно сравнить с == УСТРОЙСТВА, так лучший способ проверить, содержит ли дополнительный массив следующие значения:

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

по количеству массивов

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

Есть и другие способы также и здесь можно проверить link to the answer

0
if (array == nil || array.count == 0 || [array isEqaul [NSNull Null]]) 
Смежные вопросы