从NSManagedObject获取类型

时间:2015-08-21 09:42:32

标签: ios swift core-data

这是我第一次使用核心数据。我试图用它来存储关于我的用户的基本信息(如果他通过parse.com登录)。然而,到目前为止,写入核心数据非常好,我很难获得数据。我能够将数据打印为[NSManagedObject],但我无法将数据转换为不同的类型(StringBool和{{1 }})。我怎么能这样做?

保存数据

UIImage

获取数据

func saveUser(username : String, proPic : UIImage?){


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

        let managedContext = appDelegate.managedObjectContext!

        //2
        let entity =  NSEntityDescription.entityForName("User",
            inManagedObjectContext:
            managedContext)

        let person = NSManagedObject(entity: entity!,
            insertIntoManagedObjectContext:managedContext)

        //3
        person.setValue(username, forKey: "username")
        person.setValue(true, forKey: "isLoggedIn")
        person.setValue(proPic, forKey: "profilePic")

        //4
        var error: NSError?
        if !managedContext.save(&error) {
            println("Could not save \(error), \(error?.userInfo)")
        }
    }

1 个答案:

答案 0 :(得分:0)

您可以使用valueForKey之前使用setValue的方式。然后你需要处理它返回AnyObject的事实。

另一种选择是生成自定义NSManagedObject子类。在模型编辑器中选择您的实体,在顶部菜单中转到编辑器 - >创建NSManagedObjectSubclass ...它将引导您完成这些步骤。完成后,您将拥有自定义类,其中包含每个实体属性的适当类型的属性。