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

Posted

技术标签:

【中文标题】应用程序在检查计数 NSMutableArray 时崩溃【英文标题】:App crashing on checking count NSMutableArray 【发布时间】:2018-07-17 07:37:47 【问题描述】:

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

let userDefaults: UserDefaults? = UserDefaults.standard
    let array  = userDefaults?.object(forKey: "purchaselist") as? NSMutableArray
    for i in 0..<array!.count 

【问题讨论】:

除了问题 1) UserDefaults.standard 永远不是 nil,您的类型注释会使情况变得更糟,并且 2) 条件向下转换为 NSMutableArray 永远不会起作用(对象是不可变的或 nil ), 和 3) UserDefaults 中有一个 API array(forKey 【参考方案1】:

你也应该检查 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

仅供参考。代码未经测试,只是信息。

【讨论】:

是的,你必须这样做

以上是关于应用程序在检查计数 NSMutableArray 时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

检查 NSUserDefault 中是不是已经存在 NSString/NSMutableArray?

在其他功能中保留计数= 0?内存管理问题?

Objective-C NSMutableArray 计数导致 EXC_BAD_ACCESS

NSMutableArray检查项目是不是存在[重复]

用@property (copy) NSMutableArray *array;会有什么问题?

无法将 NSMutableArray 类型的值分配给 UIBarButtonItem 类型