Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios managedObject上的setValuesForKeysWithDictionary在swift中给出编译错误_Ios_Swift_Nsmanagedobject_Kvc - Fatal编程技术网

Ios managedObject上的setValuesForKeysWithDictionary在swift中给出编译错误

Ios managedObject上的setValuesForKeysWithDictionary在swift中给出编译错误,ios,swift,nsmanagedobject,kvc,Ios,Swift,Nsmanagedobject,Kvc,我正在swift中尝试一个基于核心数据的应用程序,我在其中执行以下步骤: 从plist检索数据 遍历检索到的数据 在每次迭代过程中,在managedObjectContext中插入一个managedObject 在从字典插入的managedObject中设置值 以下是我正在使用的代码: let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate let managedObjectCont

我正在swift中尝试一个基于核心数据的应用程序,我在其中执行以下步骤:

从plist检索数据 遍历检索到的数据 在每次迭代过程中,在managedObjectContext中插入一个managedObject 在从字典插入的managedObject中设置值 以下是我正在使用的代码:

 let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
        let managedObjectContext = appDelegate.managedObjectContext!

        // 1. Retrieve data from plist
        var defaultDataPlistPath = NSBundle.mainBundle().pathForResource("DefaultData", ofType: "plist")
        var defaultDataArray = NSArray(contentsOfFile: defaultDataPlistPath!)

        // 2. Store retrieved data in local db using core data apis
        for menuCategoryDict in defaultDataArray {
            // storing menu categories
            var attributes = menuCategoryDict["attributes"]

            var menuCategory : MenuCategories = NSEntityDescription.insertNewObjectForEntityForName("MenuCategories", inManagedObjectContext: managedObjectContext) as MenuCategories
            menuCategory.setValuesForKeysWithDictionary(attributes) // this line is giving compilation error :(
        }

        appDelegate.saveContext()
问题是-由于某些原因,我得到编译错误:“AnyObject?”与此行的“[NSObject:AnyObject]”不同:

menuCategory.setValuesForKeysWithDictionary(attributes)

我不知道,请建议。

当您尝试从字典中检索值时,可能是给定键不存在值。因此,在swift中,您不会得到一个值,而是一个包装在选项类型中的值。 错误消息基本上表示属性是包装在选项中的AnyObject,而不是AnyObject类型的值。 换句话说,错误消息意味着您必须在使用该值之前检查该值是否确实存在,否则您的应用程序可能会崩溃。 打开类型的最简单方法是写入属性!在这里 但您应该真正了解期权类型,因为它是Swift中的一个非常基本的概念: