Ios 应用程序在检查NSMutableArray计数时崩溃

Ios 应用程序在检查NSMutableArray计数时崩溃,ios,swift3,nsmutablearray,Ios,Swift3,Nsmutablearray,应用程序在检查NSMutablearray的计数时崩溃如果它为零,我不知道如何处理它,我是ios新手 let userDefaults: UserDefaults? = UserDefaults.standard let array = userDefaults?.object(forKey: "purchaselist") as? NSMutableArray for i in 0..<array!.count { } let userDefaults:userDef

应用程序在检查NSMutablearray的计数时崩溃如果它为零,我不知道如何处理它,我是ios新手

let userDefaults: UserDefaults? = UserDefaults.standard
    let array  = userDefaults?.object(forKey: "purchaselist") as? NSMutableArray
    for i in 0..<array!.count {
}
let userDefaults:userDefaults?=UserDefaults.standard
让array=userDefaults?.object(forKey:“purchaselist”)作为?可变数组

对于0..中的i,您也应该检查nil

if let array = userDefaults?.object(forKey: "purchaselist") as? [Any], !array.isEmpty {
    //Your code goes here
}
你也可以这样做

if let array = userDefaults?.object(forKey: "purchaselist") as? NSMutableArray {
    if array.count != 0 {
        //Your code goes here
    } else {
        //array count zero 
    }
} else {
    //Your array is nil
}

仅供参考。代码没有经过测试,它只是信息。

您还应该检查nil

if let array = userDefaults?.object(forKey: "purchaselist") as? [Any], !array.isEmpty {
    //Your code goes here
}
你也可以这样做

if let array = userDefaults?.object(forKey: "purchaselist") as? NSMutableArray {
    if array.count != 0 {
        //Your code goes here
    } else {
        //array count zero 
    }
} else {
    //Your array is nil
}

仅供参考。代码没有经过测试,它只是信息。

是的,你必须这样做是的,你必须这样做,除了问题1)用户默认值。标准的永远不会nil,你的类型注释会使它更糟,2)条件下降档到NSMutableArray永远不会工作(对象是不可变的或nil),3)有一个API
数组(除了问题1之外,
UserDefaults
中的forKey
UserDefaults。标准的
从来都不是
nil
,您的类型注释会使情况更糟,2)对
NSMutableArray
的条件向下转换永远不起作用(对象是不可变的或
nil
),3)在
UserDefaults