无法获取具有 SQL 等条件的核心数据
Posted
技术标签:
【中文标题】无法获取具有 SQL 等条件的核心数据【英文标题】:Unable to fetch core data with condition like SQL 【发布时间】:2019-10-24 06:13:01 【问题描述】:让我在 swift ios 中拥有一个核心数据数据库 我有一个实体:“玩家” 在这个实体中,有三行。 “玩家 ID”、“玩家名称”、“团队名称”
并成功将数据保存在这个结构中。
我的问题是 我想用像 sql 这样的查询来获取数据 我想这样获取
where (Team_name == "Barcelona")
array = [player_name(index.row)]
请帮帮我。
我的提取码还不正确。我在谷歌上搜索并找到了这个
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Player")
// Add Sort Descriptor
let sortDescriptor = NSSortDescriptor(key: "team_name", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
// Add Predicate
let predicate = NSPredicate(format: "team_name CONTAINS[c] %@", "Barcelona")
fetchRequest.predicate = predicate
do
let records = try managedObjectContext.fetch(fetchRequest) as! [NSManagedObject]
for record in records
print(record.value(forKey: "player_name") ?? "no name")
catch
print(error)
【问题讨论】:
可以分享获取请求代码吗? Jok3r,已更新。 您需要使用developer.apple.com/documentation/coredata/nsfetchrequest 和developer.apple.com/documentation/foundation/nspredicate 来获取过滤后的数据 你得到了什么结果? 它没有运行。得到错误。我比较新鲜。请给我一个适合这种情况的示例代码 【参考方案1】:谓词和排序描述符区分大小写。
如果属性是Team_name
,排序描述符和谓词必须是
let sortDescriptor = NSSortDescriptor(key: "Team_name", ascending: true)
let predicate = NSPredicate(format: "Team_name CONTAINS[c] %@", "Barcelona")
还有
print(record.value(forKey: "Player_name") ?? "no name")
【讨论】:
以上是关于无法获取具有 SQL 等条件的核心数据的主要内容,如果未能解决你的问题,请参考以下文章