小编Nic*_*atz的帖子

CustomNSError 协议有什么作用,我为什么要采用它?

CustomNSError协议有什么作用,我为什么要采用它?
Apple 提供的文档仅说明:

描述专门提供域、代码和用户信息字典的错误类型。

我已经在谷歌上搜索过,但在那里找不到与我的问题相关的任何内容。

swift

8
推荐指数
1
解决办法
2054
查看次数

将字典保存到NSUserDefaults中

class AddElementVC: UIViewController {

    // textfields and some other functions are defined here 

    @IBAction func addElement(sender: UIBarButtonItem) {

        let newElement = Element(/* properties are defined here */)
        var theDict = NSUserDefaults.standardUserDefaults().dictionaryForKey(tableViewData) as [String: [Element]]

        if var theArray = theDict[newElement.someProperty] {
            theArray += newElement
            theDict[newElement.someProperty] = elementArray
        } else{
            theDict[newElement.someProperty] = [newElement]
        }

        NSUserDefaults.standardUserDefaults().setObject(theDict, forKey: tableViewData)

    }
}
Run Code Online (Sandbox Code Playgroud)

解释上述代码:

我的tableView-app从[String:[Element]]类型的字典中接收数据(Element是一个自定义类),它是从userDefaults加载的.在第二个viewController中,您可以填写一些textFields,最后按下UIBarButtonItem.从textFields的数据中创建类"Element"的新实例,并将其添加到"theDict"中的一个"newElement"属性的键上.一切都像我的控制台输出检查的话,但我不能够最终保存编辑后的字典中userDefaults工作正常.没有语法错误,但是当我使用应用程序并尝试通过第二个viewController向Dictionary添加另一个元素时,会显示以下错误:

错误信息:

NSForwarding:警告:类'_TtC12myApp7Element'的对象0xdcb002c没有实现methodSignatureForSelector: - 提前出现问题

研究并没有帮助我理解错误信息.

编辑

import Foundation

class Element: NSCoding {

enum State: String {
    case state1 = "state1"
    case …
Run Code Online (Sandbox Code Playgroud)

swift xcode6

3
推荐指数
1
解决办法
7675
查看次数

标签 统计

swift ×2

xcode6 ×1