Необходимо проверить NSArray, содержащий несколько типов данных, если объекты равны нулю в iOS

У меня есть NSArray, который я использую в своем приложении iOS, которое содержит данные трех типов:

NSDate, NSString и NSNumber

То, что я хотел бы сделать, это перебрать этот NSArray в цикле for, чтобы проверить, не являются ли объекты нулевыми, однако я не уверен, как это сделать, потому что массив содержит объекты разных типов вместо одного единственного типа. Вот что я думаю сделать:

for (id widget in myArray)
{
    if ([widget isKindOfClass:[NSDate class])
    {
         if (widget == nil) {
            widget = @"";
         }   

    }

    else if ([widget isKindOfClass:[NSString class])
    {
         if (widget == nil) {
            widget = @"";
         }   

    }

    else if ([widget isKindOfClass:[NSNumber class])
    {
         if (widget == nil) {
            widget = @"";
         }   

    }

}

Однако я получаю сообщение об ошибке компиляции: "ARC по умолчанию не может изменять переменные быстрого перечисления; объявите переменную __strong, чтобы разрешить это". Я не уверен заранее, какой тип объекта перед итерацией, так как мне обойти это?

Заранее спасибо всем, кто ответит.

1 ответ

Решение

NSArray не может содержать нулевые значения. Просто проверьте NSNull

for (id widget in myArray)
 {
    if ([widget isKindOfClass:[NSNull class]])
     //do what you need
 }
Другие вопросы по тегам