【问题标题】:value of type 'AnyObject' has no member age“AnyObject”类型的值没有成员年龄
【发布时间】:2017-03-13 18:49:01
【问题描述】:

这是我的一个程序的代码,它实际上适用于另一个应用程序,但是当我再次使用时,它说“AnyObject”类型的值没有成员“年龄”

这是我用来将数据保存到 coredata 的代码

            let user = User(context: context)
            user.name = username.text!
            user.age = Int16(userage.text!)!
            appDelegate.saveContext()

            print("user name and age saved")

下面我正在使用操作按钮来检索核心数据

@IBAction func retrieve(_ sender: UIButton) {

    do {
        let data = try context.fetch(User.fetchRequest())

        for each in data {

        print("Name : \((each as AnyObject).name! ?? "name!")\nAge : \((each as AnyObject).age!)\n")
        }
    }
    catch {
        // handle error
    }
}

请帮助我哪里错了,当使用 CoreData 实体的“用户”时,有时它似乎无法检测到 swift 似乎无法检测到

【问题讨论】:

    标签: swift core-data


    【解决方案1】:

    不要将具体类型User 转换为未指定的AnyObject

    print("Name : \(each.name)\nAge : \(each.age)\n")
    

    如果您遇到编译器错误,请合并FetchRequest 的通用语法

    【讨论】:

    • 不,这是不正确的,迅速强迫你接受每一个作为 AnyObject
    • 那你的Core Data环境不对。带有通用请求的fetch 应该返回关联类型的数组。试试这个语法:try context.fetch(User.fetchRequest()) as! [User]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多