2016-08-10 4 views
3

내 응용 프로그램에 CoreData를 추가하려고합니다. 간단한 가져 오기는 괜찮지 만, 술어로 데이터를 가져 오려고하면 예외가 발생합니다 (AppDelegate). route.identifierString이고, "routeFormed == %@"+route.identifier! :swift CoreData 술어

func fetchWithPredicate(table: String, pred: String)->NSArray 
{ 
    var appDel : AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate); 
    var context : NSManagedObjectContext = appDel.managedObjectContext 
    var request = NSFetchRequest(entityName: table) 
    request.predicate = NSPredicate(format: pred)//exception occurs on this string 
    request.returnsObjectsAsFaults = false 
    var results: NSArray = NSArray() 
    do{ 
     results = try context.executeFetchRequest(request) 
    } 

    catch{} 

    return results 
} 

내 조건은 다음과 같습니다. AppDelegate 또는 내 회사에 뭔가를 추가해야합니까? 또한, 나는이 사소한 경우 있지만 실패 할 수밖에 없다, 나는 하지 문자열과 같은 조건을 만들 수 있습니까 보이는 이름을 사용하여 술어 또는 내가 데이터베이스 (i.e. "routeFormed" or "ZROUTEFORMED")?

답변

3

에서 볼 수있는 사람을 추가해야합니다, sqlitebrowser와 .sqlite 파일을 열었습니다.

let predicate = NSPredicate(format: "routeFormed == %@", route.identifier) 

또는

let predicate = NSPredicate(format: "%K == %@", "routeFormed", route.identifier) 

와 술어를 만들고 가져 오기 요청이 전달합니다. 술어의 키는 코어 데이터 모델 속성에 정의 된대로 엔터티 속성의 이름 인 입니다.

+0

나는 그것이 작동하지 않는 이유를 깨달았습니다, 많이 고마워요! – Jamil

관련 문제