请帮助我找出我的代码出了什么问题。
@IBAction func done(sender: AnyObject) {
let moc:NSManagedObjectContext = SwiftCoreDataHelper.managedObjectContext()
let predicate:NSPredicate = NSPredicate(format: "identifier ==
'\(contactIdentifierString)'")
let results:NSArray = SwiftCoreDataHelper.fetchEntities(NSStringFromClass(Contact), withPredicate: predicate, managedObjectContext: moc)
let contact:Contact = results.lastObject as Contact
var toDoItem:ToDoItem = SwiftCoreDataHelper.insertManagedObject(NSStringFromClass(ToDoItem), managedObjectConect: moc) as ToDoItem
toDoItem.identifier = "\(NSDate())"
toDoItem.dueDate = datePicked
toDoItem.note = titleTextField.text
toDoItem.contact = contact
SwiftCoreDataHelper.saveManagedObjectContext(moc)
self.navigationController.popViewControllerAnimated(true)
}
func saveContext () {
var error: NSError? = nil
let managedObjectContext = self.managedObjectContext
if managedObjectContext != nil {
// here is problem (-2/completed/ContactU/ContactU/AppDelegate.swift:54:33:
// Cannot invoke '!=' with an argument list of type '(NSManagedObjectContext,
// NilLiteralConvertible)')
if managedObjectContext.hasChanges && !managedObjectContext.save(&error) {
// Replace this implementation with code to handle the error
// appropriately.
// abort() causes the application to generate a crash log and
// terminate.
// You should not use this function in a shipping application,
// although it may be useful //during development.
//println("Unresolved error \(error), \(error.userInfo)")
abort()
}
}
}
// #pragma mark - Core Data stack
// Returns the managed object context for the application.
// If the context doesn't already exist, it is created and bound to
// the persistent store coordinator for the application.
var managedObjectContext: NSManagedObjectContext {
if !(_managedObjectContext != nil) {
let coordinator = persistentStoreCoordinator
if coordinator != nil {
_managedObjectContext = NSManagedObjectContext()
_managedObjectContext!.persistentStoreCoordinator = coordinator
}
}
return _managedObjectContext!
}
navigationViewController属性的类型不是UINavigationViewController,而是UINavigationViewController的可选属性,因此要对其进行调用,您应该使用可选链接:
self.navigationController?.popViewControllerAnimated(true)
只有当navigationController值存在时(即不为nil),该方法才会被调用
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句