NSUserDefault自定义对象错误-“无法从Objective-C桥接数组”

队长

包含return goal //**//我的程序的行崩溃了,并显示以下错误:“致命:无法从Objective-C桥接数组”。谁能知道这是怎么回事?

func saveGoals (goals : [Goal]) {
    var updatedGoals = NSKeyedArchiver.archivedDataWithRootObject(goals)
    NSUserDefaults.standardUserDefaults().setObject(updatedGoals, forKey: "Goals")
    NSUserDefaults.standardUserDefaults().synchronize()
}

func loadCustomObjectWithKey() -> [Goal?] {
    if let encodedObject : NSData = NSUserDefaults.standardUserDefaults().objectForKey("Goals") as? NSData {
        var encodedObject : NSData? = NSUserDefaults.standardUserDefaults().objectForKey("Goals") as? NSData
        var goal : [Goal] = NSKeyedUnarchiver.unarchiveObjectWithData(encodedObject!) as [Goal]
        return goal //**//
    } else {
        return [Goal]()
    }
}
class GoalsViewController: MainPageContentViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var tableView: GoalsTableView!
var goalsArray : Array<Goal> = [] //

    override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.delegate = self
        self.tableView.dataSource = self

        if var storedGoals: [Goal] = loadCustomObjectWithKey() as? [Goal] {
            goalsArray = storedGoals
        }

        //retrieve data.

        if var storedGoalList: [Goal] = NSUserDefaults.standardUserDefaults().objectForKey("GoalList") as? [Goal]{
            goalsArray = storedGoalList;
        }

        var goal = Goal(title: "Walk the Dog")
        goalsArray.append(goal)
        saveGoals(goalsArray)

        self.tableView?.reloadData()

        tableView.estimatedRowHeight = 44.0
        tableView.rowHeight = UITableViewAutomaticDimension

    }
}
戴维·贝里

您正在尝试将[目标]返回为[目标?]。由于数组内容类型不匹配(并且不匹配),因此会出现运行时异常。将返回类型更改为[目标],特别是因为无论如何总会返回一些东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法从Objective-C错误桥接数组

“严重错误:无法从Objective-C桥接数组” —为什么还要尝试Swift,Swift?

UIImagePickerController和致命错误:数组元素无法桥接到Objective-C

无法从Objective-C-> Swift中的问题桥接字典

数组元素无法桥接到Objective-C

Objective-C-桥接C ++的缺点?

框架的Objective-C桥接标题

C ++无法对自定义对象的向量进行排序

无法从主机访问 Docker 自定义桥接网络中发布的端口

无法将自定义CGRect函数从Objective-C转换为Swift

自定义 FirebaseListAdapter 中的错误“无法转换类型的对象”

Objective-C自定义类

存储自定义对象(Swift 中的类)以供 Objective-C 方法访问

使用Objective-C将JSON反序列化为自定义对象

无法在 Swift 4 中将自定义对象数组保存到 UserDefault

TS:自定义对象数组的定义

无法初始化类对象:Objective-C

错误:无法构建Objective-C模块“ Firebase”

Xcode帮助:在Objective-C中创建自定义类时出现非特定错误代码

创建自定义对象数组的数组

在Objective-C中转义自定义字符

来自Objective-C的自定义Init()转换

自定义类的Objective-C类别调用方法

在Objective-C中进行Admob自定义事件

在Objective-C中设置自定义字体

自定义地图图钉图像Objective-C

UIBarButtonItem覆盖自定义图像颜色-Objective-C

使用Objective c自定义设备的来电屏幕

无法从公共可变数组(Objective-C)中删除对象