-1

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

NSDate、NSString 和 NSNumber

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

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 以允许这样做。” 我不确定在迭代之前对象的类型是什么,那么我该如何解决这个问题?

4

1 回答 1

1

NSArray 不能保存 nil 值。只需检查 NSNull

for (id widget in myArray)
 {
    if ([widget isKindOfClass:[NSNull class]])
     //do what you need
 }
于 2013-10-08T15:53:23.867 回答