打印数组中的第三项
print the 3rd item in a array
在我尝试的 swift 代码中,我想打印从核心数据属性 atBATS 获取的数组中的第 3 个项目。代码中也有一个排序描述符。现在代码打印所有的名字,只打印第三个名字。假设数组中有 3 个项目。
func printStrings() {
let appD = UIApplication.shared.delegate as! AppDelegate
let context = appD.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Data")
request.returnsObjectsAsFaults = false
do {
let result = try context.fetch(request)
var retrievedData = [String]()
for data in result as! [NSManagedObject] {
let sort = NSSortDescriptor(key: "atBATS", ascending: false)
request.sortDescriptors = [sort]
if let value = data.value(forKey: "atBATS") as? String {
retrievedData.append((value))
}
}
print(retrievedData)
} catch {
print("Failed")
}
}
首先不要命名自定义结构或 class Data
。它会干扰 Foundation Data
.
排序描述符在错误的位置。在获取数据之前,它必须附加到获取请求。
而且你的代码已经过时了。始终使用 NSManagedObject
的子 class。在下面的代码中,我将 class MyData
命名为
func printStrings() {
let appD = UIApplication.shared.delegate as! AppDelegate
let context = appD.persistentContainer.viewContext
let request : NSFetchRequest<MyData> = MyData.fetchRequest()
request.sortDescriptors = [NSSortDescriptor(key: "atBATS", ascending: false)]
do {
let result = try context.fetch(request)
let atBATS = result.map(\.atBATS)
if atBATS.count > 2 {
print(atBATS[2])
} else {
print("There are less than 3 items")
}
} catch {
print(error)
}
}
在我尝试的 swift 代码中,我想打印从核心数据属性 atBATS 获取的数组中的第 3 个项目。代码中也有一个排序描述符。现在代码打印所有的名字,只打印第三个名字。假设数组中有 3 个项目。
func printStrings() {
let appD = UIApplication.shared.delegate as! AppDelegate
let context = appD.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Data")
request.returnsObjectsAsFaults = false
do {
let result = try context.fetch(request)
var retrievedData = [String]()
for data in result as! [NSManagedObject] {
let sort = NSSortDescriptor(key: "atBATS", ascending: false)
request.sortDescriptors = [sort]
if let value = data.value(forKey: "atBATS") as? String {
retrievedData.append((value))
}
}
print(retrievedData)
} catch {
print("Failed")
}
}
首先不要命名自定义结构或 class Data
。它会干扰 Foundation Data
.
排序描述符在错误的位置。在获取数据之前,它必须附加到获取请求。
而且你的代码已经过时了。始终使用 NSManagedObject
的子 class。在下面的代码中,我将 class MyData
func printStrings() {
let appD = UIApplication.shared.delegate as! AppDelegate
let context = appD.persistentContainer.viewContext
let request : NSFetchRequest<MyData> = MyData.fetchRequest()
request.sortDescriptors = [NSSortDescriptor(key: "atBATS", ascending: false)]
do {
let result = try context.fetch(request)
let atBATS = result.map(\.atBATS)
if atBATS.count > 2 {
print(atBATS[2])
} else {
print("There are less than 3 items")
}
} catch {
print(error)
}
}