sqlite – iPhone CoreData加入
发布时间:2020-12-12 19:12:19 所属栏目:百科 来源:网络整理
导读:这是我的核心数据模型: 我正在尝试从给定category.categoryName和languageset.languageSetName的数据库中获取所有LanguageEntries,例如 NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescriptio
这是我的核心数据模型:
我正在尝试从给定category.categoryName和languageset.languageSetName的数据库中获取所有LanguageEntries,例如 NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"LanguageEntry" inManagedObjectContext:del.managedObjectContext]; [fetchRequest setEntity:entity]; NSString* predicateString = [NSString stringWithFormat:@"Category.categoryName = %@ AND LanguageSet.languageSetName = %@",@"Food",@"English####Spanish"]; fetchRequest.predicate = [NSPredicate predicateWithFormat:predicateString]; NSError *error = nil; NSArray* objects = [del.managedObjectContext executeFetchRequest:fetchRequest error:&error]; 这总是返回0个对象.如果我将谓词字符串设置为匹配一个关系(例如,Category.categoryName = Food或languageSet.languageSetName = English #### Spanish),它将返回数据. 这令人费解,任何人都可以解决一些问题吗? – >肯 您无法将Core Data视为SQL.核心数据中没有“加入”这样的东西.在这种情况下,您试图找到两组对象的交集.在逻辑上接近连接但不在实现细节中.编程魔鬼总是在细节中.尝试使用逻辑等于“==”,如下所示: @"Category.categoryName == %@ AND LanguageSet.languageSetName == %@" 我相信这会解决你的问题. 数据模型中隐藏了谓词编辑器.即使您没有将它们嵌入到模型本身的提取中,它也可以帮助您设置谓词.只需选择一个实体,在您的情况下为“LanguageEntity”,然后添加一个获取请求.将出现编辑谓词,您可以使用该对话框创建谓词.它将显示可以复制到代码中的谓词的文本版本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLITE3 使用总结(3~5)
- 详解lastindex,正则test()与全局匹配g偶遇,带来一会true一
- 来自C#的javascript文字 – 避免警告
- UIKit框架-高级控件Swift版本: 3.UITableViewCell方法/属性
- 单元测试 – 在代码写入之前是否应写入单元测试?
- Oracle_高级功能(6) 分区
- ruby-on-rails – 在simple_form上添加:onchange =>“read
- ruby-on-rails – Rails Rspec`require’:无法加载这样的文
- jsonp 学习实例
- objective-c – 使用lldb在Xcode中单步执行时调试另一个选择