【问题标题】:How to correct the error "can not assign value of type [NSManagedObject] to type [String]如何更正错误“无法将 [NSManagedObject] 类型的值分配给 [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)


}

【问题讨论】:

    标签: swift


    【解决方案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}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-08
      相关资源
      最近更新 更多