Ios Swift/CoreData-初始化后变量参考更改

Ios Swift/CoreData-初始化后变量参考更改,ios,swift,core-data,ios9,Ios,Swift,Core Data,Ios9,我用Swift让CoreData弄湿了我的脚,遇到了一些对我来说毫无意义的事情 基本上,我正在构建一个简单的地图应用程序,用户可以在其中输入pin,从注释视图中选择信息按钮,然后将该位置添加到“收藏夹”列表中。我想在两次会议之间保留该列表 我的AppDelegate中有以下内容: func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObjec

我用Swift让CoreData弄湿了我的脚,遇到了一些对我来说毫无意义的事情

基本上,我正在构建一个简单的地图应用程序,用户可以在其中输入pin,从注释视图中选择信息按钮,然后将该位置添加到“收藏夹”列表中。我想在两次会议之间保留该列表

我的AppDelegate中有以下内容:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.

    self.dataController = DataController()

    return true
}
DataController()是处理……的代码所在的位置,您猜对了。数据。我只有一个init()和另一个添加数据的函数

这是获取信息并使用DataController类中的函数将该数据添加到我的数据集中的代码

let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: { (action) -> Void in
            let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
            appDelegate.dataController.addItemToData(self.locationInfo.address, city: self.locationInfo.city, zip: self.locationInfo.zip, country: self.locationInfo.country, latitude: self.locationInfo.lat, longitude: self.locationInfo.long)
        })
这就是它变得奇怪的地方。此屏幕截图显示应用程序处于“let appDelegate=…”状态时的屏幕截图

这是应用程序运行下一行的时候


正如您从图像中看到的,dataController一开始有一个值,但当我尝试向下一行使用它时,它等于nil,appDelegate也有一个不同的值。该应用程序还因“致命错误:在展开可选值时意外发现nil”而出错。其他人看到过类似的情况吗?或者知道可能发生了什么吗?

您的
dataController
属性如何在AppDelegate类中声明?@Paulw11
var-dataController:dataController
如果第一个屏幕截图是当调试器实际指向
let appDelegate=…
时,则调试器中的
appDelegate
变量在该点无效,其属性值也无效。在下一行中,
appDelegate
实际上已分配给您的app delegate实例(您可以看到地址已更改,它以c70而不是c20结尾),因此您的
dataController
属性未初始化。调试器指向您执行步骤时将执行的行,而不是已执行的行