以逗号分隔列表形式获取核心数据
Fetch Core Data as comma separated list
我意识到我遗漏了一些简单的东西,但作为一个 Swift 新手,我正在兜圈子 & 希望能指出我做错了什么?!
我有一个名为 "Numbers" 的核心数据实体,它有一个名为 "userNumbers" 的属性 (Int16)。我正在获取如下结果:
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Numbers")
//request.predicate = NSPredicate(format: "age = %@", "12")
request.returnsObjectsAsFaults = false
do {
let result = try context.fetch(request)
for data in result as! [NSManagedObject] {
print("\(data.value(forKey: "userNumbers") as! Int16)")
}
} catch {
print("Failed")
}
我控制台的结果是:
12
13
18
19
21
我需要知道如何使它成为逗号分隔的列表,以便我可以在数组中使用它。本质上我需要 return 为:12,13,18,19,21
我尝试的一切似乎都是错误的!
首先创建一个更具体的获取请求以获得不同的结果类型
let request = NSFetchRequest<Numbers>(entityName: "Numbers")
无法使用 逗号分隔列表,因为 userNumbers
的类型是数字。
您可以 map
将结果 Int16
与
的数组
do {
let result = try context.fetch(request) // the type is [Numbers]
let numberArray = result.map{[=11=].userNumbers}
print(numberArray)
}
我意识到我遗漏了一些简单的东西,但作为一个 Swift 新手,我正在兜圈子 & 希望能指出我做错了什么?!
我有一个名为 "Numbers" 的核心数据实体,它有一个名为 "userNumbers" 的属性 (Int16)。我正在获取如下结果:
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Numbers")
//request.predicate = NSPredicate(format: "age = %@", "12")
request.returnsObjectsAsFaults = false
do {
let result = try context.fetch(request)
for data in result as! [NSManagedObject] {
print("\(data.value(forKey: "userNumbers") as! Int16)")
}
} catch {
print("Failed")
}
我控制台的结果是:
12
13
18
19
21
我需要知道如何使它成为逗号分隔的列表,以便我可以在数组中使用它。本质上我需要 return 为:12,13,18,19,21
我尝试的一切似乎都是错误的!
首先创建一个更具体的获取请求以获得不同的结果类型
let request = NSFetchRequest<Numbers>(entityName: "Numbers")
无法使用 逗号分隔列表,因为 userNumbers
的类型是数字。
您可以 map
将结果 Int16
与
do {
let result = try context.fetch(request) // the type is [Numbers]
let numberArray = result.map{[=11=].userNumbers}
print(numberArray)
}