gpt4 book ai didi

iOS:将核心数据提取的结果转换为数组并传递给另一个类

转载 作者:可可西里 更新时间:2023-11-01 01:22:48 24 4
gpt4 key购买 nike

在我的类(class)中,我有一个从 coredata 中提取数据的方法。但我有一个问题:我需要将结果转换为数组,因为那样我就必须在其他类中使用该数组。

方法是:

    func loadQuestion() -> NSArray{
let fetchRequest: NSFetchRequest<Questions> = Questions.fetchRequest()

do {
let array = try self.context.fetch(fetchRequest) as NSArray
guard array.count > 0 else { print("[EHY!] Non ci sono elementi da leggere "); return array }

return array
} catch let errore {
print("error FetchRequest")
}

return list
}

我不知道如何转换变量数组?

结果(错误)

enter image description here

Edit: I write this because I want to convert the result of fetch into an array, so you can switch to another class

最佳答案

fetch 返回一个(可选)数组,因此您需要做的就是从您的函数中返回它。由于 fetch throws 您的函数应该 throw 或至少返回一个可选的,因为 fetch 可能会失败。

在 Swift 中很少需要使用 NSArray;正确类型的 Swift 数组将使你的代码更清晰、更安全。由于 Swift 中的 CoreData 支持泛型,fetch 将根据您的 NSFetchRequest 自动返回适当的数组类型。即使您是从 Objective-C 调用此函数,最好让编译器为您将 Swift 数组桥接到 NSArray

最后,你错误地使用了guard;你试图在它有 0 个项目的情况下返回 array,否则你返回一些变量 list,它没有在你显示的代码中声明。

func loadQuestion() -> [Questions]? {
let fetchRequest: NSFetchRequest<Questions> = Questions.fetchRequest()

do {
let array = try self.context.fetch(fetchRequest) as [Questions]
return array
} catch let errore {
print("error FetchRequest \(errore)")
}

return nil
}

关于iOS:将核心数据提取的结果转换为数组并传递给另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43173162/

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