2017-12-18 8 views
0

코어 데이터의 데이터를 내 tableview에 추가 할 수없는 이유가 궁금합니다. 처음 추가되고 저장되었지만 앱이 다시로드되어 데이터를 다시로드해야하므로 데이터를 내 tableview에 추가 할 수 없습니다. 다음은 코드 생성 세포에있는 tableview 사용 NSManagedObject는 단순히 배열에 NSManagedObject 데이터를 추가하는 경우'String'유형의 값을 예상 인수 유형 'NSManagedObject'로 변환 할 수 없습니다. Swift

var titlename: [String] = [] 

답변

1

에게 있습니다.

for result in results as! [NSManagedObject] { 
     titlename.append(result) 
    } 

OR

의 tableview는 단지 그런 다음에 String 유형을 변경 NSManagedObject 셀을 만드는 titlename 어레이로부터 문자열을 사용한다.

var titlename: [String] = [] 

도움이 될 것입니다.

1

에 titleName 유형을 변경할 수 있습니다

var titlename: [NSManagedObject] = [] 

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(true) 

    let appDelegate = UIApplication.shared.delegate as! AppDelegate 
    let manageContext = appDelegate.persistentContainer.viewContext 
    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Items") 

    fetchRequest.returnsObjectsAsFaults = false 

    do { 
     let results = try manageContext.fetch(fetchRequest) 

     for result in results as! [NSManagedObject] { 
      if let theName = result.value(forKey: "name") as? String { 
       titlename.append(theName) 
      } 
     } 
    } catch let error as NSError { 
     print("Could not fetch. \(error), \(error.userInfo)") 
    } 

    tableView.reloadData() 
} 
관련 문제