如何更正错误“无法将 [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'”?