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