エンティティ "Person"にage(Int16)とname(string)という2つの属性を追加できるコアデータ内にリストを作成しようとしています。限り、私はそれが新しいものが追加されたとして新しいオブジェクトを格納していると私は私の配列が適切にそれらをフェッチしているとは思わないと信じていることを伝えることができます。誰かが私が間違っている場所を把握するのに役立つことができるか?あなたのforループでコアデータからフェッチして配列を配置する際に問題が発生する
var list = [Person(context:context)]
@IBAction func saveButton(_ sender: Any)
{
list.append(Person(context:context))
list[list.count-1].age = Int16(ageTF.text!)!
list[list.count-1].name = nameTF.text
let newList = NSEntityDescription.insertNewObject (forEntityName: "Person",into: context) as NSManagedObject
newList.setValue(list[list.count-1].name, forKey: "name")
newList.setValue(list[list.count-1].age, forKey: "age")
appDelegate.saveContext()
}
@IBAction func printList(_ sender: Any)
{
for index in 0...list.count-1
{
print("Name of person # \(index) = \(list[index].name!)")
print("Age of person # \(index) = \(list[index].age)")
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")
do {
let results = try context.fetch(fetchRequest)
let listItems = results as! [NSManagedObject]
print(listItems)
}
catch {
print("Error")
}
}
トラブルシューティング中に変更する前に、このようなループがありました。それをポストに戻しました。 – JL64