gpt4 book ai didi

ios - 是否可以快速从 CoreData 中获取数组?

转载 作者:行者123 更新时间:2023-11-28 13:37:30 33 4
gpt4 key购买 nike

我在 CoreData 中存储了一些字符串(例如人名)。现在我想将这些名称加载到一个数组中。

func loadData() -> Array<String> {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext

let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")

request.returnsObjectsAsFaults = false




var test = ""
var DataArray = [String]()

do {
let results = try context.fetch(request)


if results.count > 0 {

for result in results as! [NSManagedObject] {

if let firstusername = result.value(forKey: "username") as? String {
test = firstusername
}
testArray.append(contentsOf: test)
}

}
} catch {
print("Roor")
}
print(type(of: test))

return testArray

}

我总是收到此错误消息:实例方法“append(contentsOf:)”要求类型“String”和“String.Element”(又名“Character”)是等效的

最佳答案

append(contentsOf: 需要一个项目序列,你必须只使用 append(,你应该将 append 行移动到 if let正文

if let firstusername = result.value(forKey: "username") as? String {
testArray.append(firstusername)
}

或者如果你想在没有名字的情况下追加一个空字符串

testArray.append((result.value(forKey: "username") as? String) ?? "")

尽管你的方法包含很多冗余代码,这已经足够了

func loadData() throws -> Array<String> {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<Users>(entityName: "Users")
request.returnsObjectsAsFaults = false
let results = try context.fetch(request)
return results.compactMap{ $0.username }
}

它返回名称数组或交出一个潜在的错误。

关于ios - 是否可以快速从 CoreData 中获取数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56431753/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com