Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
如何从核心数据中的关系中获取价值(swift)_Swift_Xcode_Core Data_Core Data Migration - Fatal编程技术网

如何从核心数据中的关系中获取价值(swift)

如何从核心数据中的关系中获取价值(swift),swift,xcode,core-data,core-data-migration,Swift,Xcode,Core Data,Core Data Migration,我有一个名为“Users”的实体,它有两个属性,分别是“username”和“password” 我有另一个实体名为“信息”,有4个属性名为“化身”、“等级”、“损失”、“胜利” 我与名为的“用户”实体建立了关系 “用户信息” 目的地:“信息” 反向:“用户详细信息” 我与名为“Info”的实体建立了关系 “用户详细信息” 目的地:“用户” 反向:“用户信息” 这是我现在的代码: @IBAction func loginButtonPressed(_ sender: UIButton) {

我有一个名为“Users”的实体,它有两个属性,分别是“username”和“password”

我有另一个实体名为“信息”,有4个属性名为“化身”、“等级”、“损失”、“胜利”

我与名为的“用户”实体建立了关系 “用户信息” 目的地:“信息” 反向:“用户详细信息”

我与名为“Info”的实体建立了关系 “用户详细信息” 目的地:“用户” 反向:“用户信息”

这是我现在的代码:

@IBAction func loginButtonPressed(_ sender: UIButton) {

    // getting the inputs from the user
    let username = usernameField.text!
    let userPassword = passwordField.text!

    // creating a request to fetch the results for the users
    let context = appDelegate.persistentContainer.viewContext
    let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
    request.returnsObjectsAsFaults = false



    // now getting all the results
    do
    {
        // saving results in results
        let results = try context.fetch(request)


        // now checking if there is any results
        if results.count > 0
        {
            // creating a for loop to go through the results
            for result in results as! [NSManagedObject]
            {
                // checking if username and password match
                if username == (result.value(forKey: "username") as? String)! && userPassword == (result.value(forKey: "password") as? String)!
                {
                    // if they do set "isLoggedIn" to true
                    UserDefaults.standard.set(true, forKey:"isLoggedIn")
                    UserDefaults.standard.synchronize()


                    // Now saving the username and info of the user to the main viewController to display the users data later

                    // I NEED TO SAVE FROM THE RELATIONSHIP DATA HERE

                    // dismissing this view to go to the main view
                    self.dismiss(animated: true, completion: nil)
                }
                else
                {
                    // if username and passwords dont match then display it to the user.
                    alertMessage(userMessage: "Login failed username or password do not match!")
                }
            }
        }
        else
        {
            // if no results then display error message
            alertMessage(userMessage: "Login Failed: No users registered!")
        }
    }
    catch
    {
        // catch
    }
}
@iAction func LoginButton按下(\uSender:UIButton){
//从用户那里获取输入
让username=usernameField.text!
让userPassword=passwordField.text!
//创建请求以获取用户的结果
让上下文=appDelegate.persistentContainer.viewContext
let request=NSFetchRequest(entityName:“用户”)
request.returnsObjectsAsFaults=false
//现在得到所有的结果
做
{
//在结果中保存结果
let results=try context.fetch(请求)
//现在检查是否有任何结果
如果results.count>0
{
//创建for循环以遍历结果
对于结果,结果为![NSManagedObject]
{
//检查用户名和密码是否匹配
如果用户名==(result.value(forKey:“username”)作为?字符串)!&&userPassword==(result.value(forKey:“password”)作为?字符串)!
{
//如果他们真的将“isLoggedIn”设置为true
UserDefaults.standard.set(true,forKey:“isLoggedIn”)
UserDefaults.standard.synchronize()
//现在将用户的用户名和信息保存到主viewController,以便稍后显示用户数据
//我需要在这里保存关系数据
//放弃此视图以转到主视图
self.disclose(动画:true,完成:nil)
}
其他的
{
//如果用户名和密码不匹配,则将其显示给用户。
alertMessage(userMessage:“登录失败的用户名或密码不匹配!”)
}
}
}
其他的
{
//如果没有结果,则显示错误消息
alertMessage(userMessage:“登录失败:未注册用户!”)
}
}
抓住
{
//抓住
}
}
检查用户名和密码是否正确后,我需要将用户名和密码关系中的数据存储到4个变量中。命名:赢,输,等级和化身

我对如何从关系中获得正确的数据感到困惑

我尝试过使用“result”变量来获得这个结果,但没有成功


感谢

人们通常会创建表示实体的类,而不是直接作为
NSManagedObjects
使用实体,因此这似乎有点奇怪。但您应该能够使用setValueForKey:

result.setValue(/* whatever */, forKey: "userInfo.avatar")

看起来你有一个末日金字塔@明天到期的PEEJWEEJ项目只需要获取数据。不管怎样,我能做到吗?我已经设置好了值。我试图读取数据并将其放入变量中。对不起,如果我把问题写错了!