Arrays 从核心数据提取并放入数组时出现问题

Arrays 从核心数据提取并放入数组时出现问题,arrays,swift,xcode,core-data,Arrays,Swift,Xcode,Core Data,我试图在核心数据中创建一个列表,该列表可以向实体“Person”添加两个属性:年龄(Int16)和姓名(string)。据我所知,我相信它会在添加新对象时存储新对象,但我认为我的数组无法正确获取它们。有人能帮我找出哪里出了问题吗 var list = [Person(context:context)] @IBAction func saveButton(_ sender: Any) { list.append(Person(context:context)) list

我试图在核心数据中创建一个列表,该列表可以向实体“Person”添加两个属性:年龄(Int16)和姓名(string)。据我所知,我相信它会在添加新对象时存储新对象,但我认为我的数组无法正确获取它们。有人能帮我找出哪里出了问题吗

    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")

    }
}
var list=[个人(上下文:上下文)]
@iAction func saveButton(\发送方:任意)
{
list.append(Person(上下文:context))
list[list.count-1].age=Int16(ageTF.text!)!
list[list.count-1].name=nameTF.text
将newList=NSEntityDescription.insertNewObject(forEntityName:“Person”,into:context)作为NSManagedObject
newList.setValue(list[list.count-1].name,forKey:“name”)
newList.setValue(list[list.count-1].age,forKey:“age”)
appDelegate.saveContext()
}
@iAction func打印列表(\发送方:任何)
{
对于0中的索引…list.count-1
{
打印(“人名#\(索引)=\(列表[index].Name!))
打印(“人的年龄#\(索引)=\(列表[index].Age)”)
}
}
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
let fetchRequest=NSFetchRequest(entityName:“Person”)
做{
let results=try context.fetch(fetchRequest)
让listItems=结果为![NSManagedObject]
打印(列表项)
}
抓住{
打印(“错误”)
}
}

for循环中的范围是
0…0
尝试
0..
Person(上下文:上下文)
在功能上与
NSEntityDescription.insertNewObject(forEntityName:“Person”,into:context)相同作为NSManagedObject
,您将两次将对象插入核心数据。

在故障排除时更改之前,我有过这样的循环。把它改回邮局。