2017-04-18 10 views
-1

다른 사람들이 비슷한 질문을하지만, 주어진 답이 나에게 도움이되지 못했습니다. 나는 핵심 데이터와 테이블 뷰를 만들려고 그리고 난 내 fetchRequest 및/또는 managedObjectContext가NSFetchedResultsController의 인스턴스에 nill이 아닌 fetchRequest와 managedObjectContext가 필요합니다. '

전무 오류 메시지가 계속
class CustomTableViewController: UITableViewController, 
NSFetchedResultsControllerDelegate { 

var coreDataContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 


@available(iOS 10.0, *) 
fileprivate lazy var fetchedResultsController: NSFetchedResultsController<Movie> = { 
    // Initiate the query 
    let fetchRequest: NSFetchRequest<Movie> = Movie.fetchRequest() as! NSFetchRequest<Movie> 

    // Sort the data 
    fetchRequest.sortDescriptors = [NSSortDescriptor(key:"title", ascending: true)] 

    NSLog("Request: %@, Context: %@", fetchRequest, self.coreDataContext);   
    let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.coreDataContext, sectionNameKeyPath: nil, cacheName: nil) 

    fetchedResultsController.delegate = self 
    return fetchedResultsController 
}() 


override func viewDidLoad() { 
    super.viewDidLoad() 

    navigationController?.setToolbarHidden(false, animated: false) 

    do { 
     // when view loads, run the fetch (query) 
     if #available(iOS 10.0, *) { 
      try self.fetchedResultsController.performFetch() 
     } else { 
      // Fallback on earlier versions 
     } 
    } catch { 
     let fetchError = error as NSError 
     print("Unable to Perform Fetch Request") 
     print("\(fetchError)") 
    } 
    } 

사람이 무엇을 잘못 어떤 아이디어가 있습니까? 나는 영화에서라는 개체가

Request: (null), Context: <NSManagedObjectContext: 0x1701db4e0> 

: 또한, 중요한,하지만 확실하지 않은 경우 내 프로젝트는

또한 목표 - C와 스위프트 모두의 혼합, 내 위의 코드를 인쇄 출력에서 ​​NSLog("Request: %@, Context: %@", fetchRequest, self.coreDataContext)입니다 내 xcdatamodeld 세 문자열 특성. 또한 자신의 Movie.swift 파일에서이 같은 영화에 대한 클래스를 생성 :

import UIKit 
import CoreData 

class Movie: NSManagedObject { 

} 
+0

Movie 클래스에 특별한 것이 있습니까? – matt

+0

방금 ​​내 영화 등급에 대한 정보를 원래 게시물의 끝에 추가했습니다. – RobertSmith

+0

그럼 거기에 가세요. 가져 오기 요청이 없습니다. – matt

답변

1

문제는 당신의 영화 클래스는 가져 오기 요청을 생성하기위한 코드가 없다는 것입니다.

@nonobjc public class func fetchRequest() -> NSFetchRequest<Movie> { 
    return NSFetchRequest<Movie>(entityName: "Movie"); 
} 

해결 방법 : 동영상 클래스 파일을 완전히 삭제하십시오. 데이터 모델에서

, 자동 코드 생성을 위해 영화의 실체를 구성하여 문제를 해결할 수

enter image description here

. Xcode는 엔티티에 대한 클래스 파일을 만드는 방법을 알고 있습니다. 그러니 그렇게하도록하십시오. 그러면 모든 것이 잘 될 것입니다.

+0

고마워요 매트! 도움에 감사드립니다! – RobertSmith