Ios 在VC和x2019之间传递CoreData对象;s

Ios 在VC和x2019之间传递CoreData对象;s,ios,swift,uitableview,core-data,Ios,Swift,Uitableview,Core Data,我正在寻求一些澄清,希望有人能帮助我理解 我的应用程序完全是以编程方式构建的,我根本不使用故事板,因此我没有任何分段 我试图通过tableView的didSelectRowAt方法将CoreData对象从一个VC传递到另一个VC 我在indexPath中正确地返回了对象,但在将该对象传递给新VC时似乎存在问题 在这个代码摘录中,我目前唯一关心的是传递CoreData对象,这样我就可以访问所有相关数据 ie:当这个地方经过时,我想打印名字、纬度、经度 这将允许我继续应用程序,并在新的VC中使用这些

我正在寻求一些澄清,希望有人能帮助我理解

我的应用程序完全是以编程方式构建的,我根本不使用故事板,因此我没有任何分段

我试图通过tableView的
didSelectRowAt
方法将CoreData对象从一个VC传递到另一个VC

我在indexPath中正确地返回了对象,但在将该对象传递给新VC时似乎存在问题

在这个代码摘录中,我目前唯一关心的是传递CoreData对象,这样我就可以访问所有相关数据

ie:当这个地方经过时,我想打印名字、纬度、经度

这将允许我继续应用程序,并在新的VC中使用这些数据

提前谢谢

//    PlacesVC

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        let placeOnMap = fetchedResultsController.object(at: indexPath)

        let destVC = MapVC()
        destVC.placePassed = placeOnMap
        self.navigationController?.pushViewController(destVC, animated: true)

        print(placeOnMap.placeName!)
    }

//    MapVC

import UIKit

class MapVC: UIViewController {

    var placePassed = PlaceEntity?

    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = .green

    //  print(placePassed.placeName!)
    //  print(placePassed.latitude!)
    //  print(placePassed.longitude!)

    }
}
更新信息

PlacesVC()
中,发生了以下情况

如果我选择单击let
placeOnMap
,我会得到

声明:let placeOnMap:PlaceEntity

代码行…
destVC.placePassed=placeOnMap
,给出以下错误

无法将“PlaceEntity”类型的值分配给“PlaceEntity?”类型。类型

MapVC()上

如果我选择点击
placePassed
var,我会得到

声明:让placePassed:PlaceEntity?.Type

此外,这行代码…
var placePassed=PlaceEntity?
,给出了以下错误

类型名称后应为成员名称或构造函数调用

如果我在destVC上取消对print语句的注释,就会弹出这个错误

类型“PlaceEntity”没有成员“placeName”

我相信我的问题与我在接收VC上设置var的方式有关,因为它正在向声明的var添加.Type


这是我不理解的部分。谢谢

在代码中看不到问题;您遇到了什么问题?@pbasdf感谢您的回复。我已经用附加信息更新了这个问题。将=替换为冒号,从而
var placePassed:PlaceEntity?
。使用冒号表示“placePassed是“PlaceEntity”类型的变量”;using=表示“placePassed是类型“PlaceEntity”-因此是导致问题的.type。@pbasdf非常感谢。这就成功了。在学习时,靠近但没有正确理解是非常令人沮丧的。在代码中看不到问题;您遇到了什么问题?@pbasdf感谢您的回复。我已经用附加信息更新了这个问题。将=替换为冒号,从而
var placePassed:PlaceEntity?
。使用冒号表示“placePassed是“PlaceEntity”类型的变量”;using=表示“placePassed是类型“PlaceEntity”-因此是导致问题的.type。@pbasdf非常感谢。这就成功了。当学习时,靠近却不能正确学习是很令人沮丧的。