“AnyObject”类型的值没有成员年龄

Posted

技术标签:

【中文标题】“AnyObject”类型的值没有成员年龄【英文标题】:value of type 'AnyObject' has no member age 【发布时间】: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 似乎无法检测到

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

不,这是不正确的,迅速强迫你接受每一个作为 AnyObject 那你的Core Data环境不对。带有通用请求的fetch 应该返回关联类型的数组。试试这个语法:try context.fetch(User.fetchRequest()) as! [User]

以上是关于“AnyObject”类型的值没有成员年龄的主要内容,如果未能解决你的问题,请参考以下文章

类型'(String,AnyObject)'在swift中没有下标成员

类型 (string , anyobject) 没有下标成员

循环通过 [AnyObject]?导致没有名为生成器的成员

斯威夫特:'(字符串)-> AnyObject?没有名为“下标”的成员

NSDictionary, (key:AnyObject, value:AnyObject) 没有成员名下标

无法调用非函数类型“((AnyObject)-> AnyObject?)!”的值- 斯威夫特 3