如果iOS中的对象为null,则需要检查NSArray是否包含多种数据类型

时间:2013-10-08 15:50:45

标签: ios nsarray fast-enumeration

我有一个NSArray,我正在我的iOS应用程序中使用,它包含三种类型的数据:

NSDate,NSString和NSNumber

我想要做的是在for循环中迭代这个NSArray以检查对象是否为null,但是,我不确定如何执行此操作,因为该数组包含不同类型的对象而不是单个类型。这就是我在想的事情:

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 个答案:

答案 0 :(得分:1)

NSArray无法保存nil值。只需检查NSNull

for (id widget in myArray)
 {
    if ([widget isKindOfClass:[NSNull class]])
     //do what you need
 }