Swift / CoreData - 初始化后变量引用更改

时间:2016-02-29 03:15:11

标签: ios swift core-data ios9

我正在使用Swift使用CoreData,并且遇到一些对我没有意义的事情。

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

我在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 = ....”

的时候

appDelegate initialization

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

appDelegate.dataController....

从图像中可以看出,dataController最初有一个值,但是当我尝试使用它时,一行向下等于nil,appDelegate也有不同的值。该应用程序还错误地出现“致命错误:因为这个问题,在展开可选值时意外地发现了nil”。有没有其他人看到这样的事情或知道可能会发生什么?

0 个答案:

没有答案