Необходимо проверить 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
}