如何更正错误“无法将 [NSManagedObject] 类型的值分配给 [String] 类型

Posted

技术标签:

【中文标题】如何更正错误“无法将 [NSManagedObject] 类型的值分配给 [String] 类型【英文标题】:How to correct the error "can not assign value of type [NSManagedObject] to type [String] 【发布时间】:2015-12-12 03:27:31 【问题描述】:

我已经构建了一个使用核心数据并可以发送短信的小应用程序。现在在发送短信部分,它一直告诉我以下一个“messageVC.recipients = items”有错误“无法将类型 [NSManagedObject] 的值分配给类型 [String]。items 是一个 NSManagedObject 数组并存储电话数字。 我试过 messageVC.recipients = items.Stringvalue, messageVC.recipients = items as! [String],messageVC.recipients = items.valueforkey["phonenumeb"] as?字符串,它不能工作。请帮忙。 非常感谢。

@IBAction func sendCurrentLocSms(sender: AnyObject)

    let messageVC = MFMessageComposeViewController()
    messageVC.body = "My address is " + "\(myAddress.text!) " + ". " + "My GPS is " + "\(myLat.text!)" + "," + "\(myLong.text!)"


    messageVC.subject = "Attention!"


    messageVC.recipients = items

    messageVC.messageComposeDelegate = self

    self.presentViewController(messageVC, animated: false, completion: nil)



【问题讨论】:

【参考方案1】:

您需要先获取一个字符串数组。根据您的实体和 NSManagedObject 子类(如果有的话),这样的事情应该可以工作:

messageVC.recipients = items.map  $0.phonenumber 

【讨论】:

感谢 MirekE。我试过你的方式。但它说“NSManagedObject 类型的值没有电话号码的成员。”我的实体是“联系人”,唯一的属性是“电话号码”。它是一个字符串 var items = [NSManagedObject]() 位于开头 感谢 MirekE。同样在其他专家的帮助下,以下工作。 messageVC.recipients = items.map return $0.valueForKey("phonenumber") as!字符串【参考方案2】:

感谢 MirekE 和所有其他专家,以下代码有效。我感谢您的所有帮助。再次感谢。

messageVC.recipients = items.map

        return $0.valueForKey("phonenumber") as! String

【讨论】:

以上是关于如何更正错误“无法将 [NSManagedObject] 类型的值分配给 [String] 类型的主要内容,如果未能解决你的问题,请参考以下文章

如何更正此错误:java.lang.OutOfMemoryError

如何更正错误“AttributeError: 'dict_keys' object has no attribute 'remove'”?

如何使用 Spring 异常处理 POST REST 更正错误状态代码

如何更正命令生成器中的语法错误? [复制]

如何更正 VLOOKUP 函数中的 #N/A 错误

如何更正错误“无法将 [NSManagedObject] 类型的值分配给 [String] 类型