我有一个初学者的问题。
首先,我有一个带有属性(名称)的Entity(人)。
我想将name属性获取到一个数组以从中选择randomElement。以下代码成功将数据返回到单独的数组:
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")
request.returnsObjectsAsFaults = false
var myArray: [String]?
do {
let results = try context.fetch(request)
for result in results as! [NSManagedObject] {
if let username = result.value(forKey: "name") as? String {
myArray = [username]
print(myArray!)
}
}
}
catch {
print("not successful")
}
我可以使用什么代替“ FOR ”?又如何?
非常感谢,并为我的初学者问题感到抱歉。
答案 0 :(得分:1)
您可以强制使用实际的实体名称
var myArray = [String]()
do {
let results = try context.fetch(request)
myArray = (results as! [Person]).compactMap { $0.name }
print(myArray)
}
catch {
print("not successful")
}