0

刚刚将我的 XCode 从 4.6 更新到 5,以及随之而来的 iOS7 SDK。

我注意到,在 iOS 5.1 或 iOS 7 的模拟器中运行我的应用程序时,我尝试在空 NSArray 或 NSMutableArray 上执行的所有操作(例如谓词过滤器等)都会导致异常(NSInvalidArgumentException) (仍在努力下载 iOS 6.1) 我的数组被实例化(所以它们不是 Nil),但它们有 0 个条目。

因此,过去在 XCode 4.6 中运行良好的代码现在崩溃了,我必须添加一个额外的 IF 来检查 array.count == 0 是否在我的应用程序中运行该行代码之前。(重大任务)

当我从 AppStore 下载我的应用程序(我使用 XCode 4.6 发布的版本)到 iOS7 设备时,它工作得很好。

其他人也遇到这种情况吗?

4

1 回答 1

1

基于此代码,我认为 [defaults objectForKey:@"Wards"] 中存储的值不是数组,请仔细检查该值

 NSArray *SelectedWards = [[NSArray alloc]initWithArray:[defaults objectForKey:@"Wards"]];

您可以使用以下代码进行检查

if(![[defaults objectForKey:@"Wards"] isKindOfClass:[NSArray class]])
{
     NSLog("OOPs!  Wards is not an array");
}
于 2013-09-25T08:29:45.633 回答