【问题标题】:How to create a managedObjectContext instance in Swift如何在 Swift 中创建 managedObjectContext 实例
【发布时间】:2016-05-25 17:22:52
【问题描述】:

我尝试使用 CoreData 来保存一些信息。

这是我的 ViewController 类:

import UIKit
import CoreData

class ContactView: UIViewController {

    @IBOutlet weak var nameTextField: UITextField!
    @IBOutlet weak var saveButton: UIButton!

    var managedObjectContext: NSManagedObjectContext? = {
        let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
        //ERROR
        if let managedObjectContext = appDelegate.managedObjectContext {
            return managedObjectContext
        }
        else {
            return nil
        }
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

我收到以下错误:

'条件绑定的初始化器必须有可选类型,而不是 NSManagedObjectContext'

我无法理解这个错误,因为 var managedObjectContext: NSManagedObjectContext? 应该是可选的!?我从一本 Swift 参考书中准确地举出了这个例子......

感谢您的任何建议!

【问题讨论】:

    标签: swift core-data


    【解决方案1】:

    AppDelegate 中的 NSManagedObjectContext 实例是非可选的:

    var managedObjectContext: NSManagedObjectContext = {
        let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
        return appDelegate.managedObjectContext
    }()
    

    不要使用参考书,它们可能已经过时了。信任编译器消息。

    【讨论】:

      猜你喜欢
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多