Arrays 从核心数据提取并放入数组时出现问题
我试图在核心数据中创建一个列表,该列表可以向实体“Person”添加两个属性:年龄(Int16)和姓名(string)。据我所知,我相信它会在添加新对象时存储新对象,但我认为我的数组无法正确获取它们。有人能帮我找出哪里出了问题吗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
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
,您将两次将对象插入核心数据。在故障排除时更改之前,我有过这样的循环。把它改回邮局。