2016-04-09 23 views
-1

içinde isteğe bağlı bir değer çıkarılırken beklenmedik şekilde bulunamadı. Alınan yönetilen nesne çekirdek veri kodumu uygularken bu kaydırma hatasını alıyorum. Bu benim manageObjectContext benim veri ihtiyacı nedeniyle olabilir ama bu benim kod çok daha fazla hata atar fark var .. başka bir fikir ??ölümcül hata: SWIFT

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, NSFetchedResultsControllerDelegate { 

let ReuseIdentifierToDoCell = "ToDoCell" 

@IBOutlet weak var tableView: UITableView! 

var managedObjectContext: NSManagedObjectContext! 

lazy var fetchedResultsController: NSFetchedResultsController = { 
    // Initialize Fetch Request 
    let fetchRequest = NSFetchRequest(entityName: "Item") 

    // Add Sort Descriptors 
    let sortDescriptor = NSSortDescriptor(key: "createdAt", ascending: true) 
    fetchRequest.sortDescriptors = [sortDescriptor] 

    // Initialize Fetched Results Controller 
    let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil) 

    // Configure Fetched Results Controller 
    fetchedResultsController.delegate = self 

    return fetchedResultsController 
}() 
+1

"managedObjectContext" öğesinin örtülü olarak isteğe bağlı bir şekilde kaldırılmasının iyi bir nedeni var mı? (Sadece "Kodumdaki hataları susturacak" * değil * iyi bir neden) Nereye bir değer atarsınız? Sadece örtülü bir şekilde kapatılmış isteğe bağlı bakımları büyük bir dikkatle kullanmalısınız. Benim [burada cevapla] (http://stackoverflow.com/a/36360605/2976878), isteğe bağlılarla güvenli bir şekilde ilgilenmenize yardımcı olmak için yararlı olabilir. – Hamish

+0

kodunuzdaki hangi satırda bu hatayı aldınız? 0 fetişinde –

+0

, fetchedResultsController = NSFetchedController – Leanneheal

cevap

2

herkes sorusuna gerçek bir cevap göndermek reddediyor neden ipucu yok.

managedObjectContext değişkeniniz nil'dir. Bu tembel değişkene erişilmeden önce muhtemelen doğru şekilde enjekte etmiyorsunuzdur.

Hata satırına bir kesme noktası koyun ve managedObjectContext değişkeninizin nil olduğunu doğrulayın ve sonra ayarlanmasını istediğiniz yeri bulmak için backtrace.

İlgili konular