核心数据:NSPredicate 一对多对多关系
Core Data: NSPredicate one to many to many relations
我有一个这样的核心数据模型:
但是我在尝试查询专辑或流派的所有歌曲名称时遇到问题。
有大佬知道怎么查询核心数据里的所有歌曲,不分专辑不分曲风吗?
非常感谢你的帮助。
更新:
NSManagedObjectContext *moc = [self managedObjectContext]; managedObjectContext];
NSEntityDescription *description = [ NSEntityDescription entityForName:@"Song" inManagedObjectContext:moc];
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Song"];
request.entity = description;
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
结果数组为空。你们有人知道我做错了什么吗?
只需为该 CoreData 模型创建一个提取请求并执行提取
NSFetchRequest *request= [NSFetchRequest fetchRequestWithEntityName:@"Song"];
您的抓取看起来不错(只是跳过了实体描述)。单步执行代码并确保:
- 托管对象上下文不是
nil
executeFetchRequest
的结果不是 nil
,而是 NSArray
- 检查结果内容
- 如果它不包含数据,请将持久存储的位置记录到控制台(当您设置核心数据堆栈时),
cd
到文档文件夹并使用 sqlite3
命令行工具。检查您期望的记录是否存在。
如果有效,则可能是数据的显示问题,而不是检索问题。
我有一个这样的核心数据模型:
但是我在尝试查询专辑或流派的所有歌曲名称时遇到问题。
有大佬知道怎么查询核心数据里的所有歌曲,不分专辑不分曲风吗?
非常感谢你的帮助。
更新:
NSManagedObjectContext *moc = [self managedObjectContext]; managedObjectContext];
NSEntityDescription *description = [ NSEntityDescription entityForName:@"Song" inManagedObjectContext:moc];
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Song"];
request.entity = description;
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
结果数组为空。你们有人知道我做错了什么吗?
只需为该 CoreData 模型创建一个提取请求并执行提取
NSFetchRequest *request= [NSFetchRequest fetchRequestWithEntityName:@"Song"];
您的抓取看起来不错(只是跳过了实体描述)。单步执行代码并确保:
- 托管对象上下文不是
nil
executeFetchRequest
的结果不是nil
,而是NSArray
- 检查结果内容
- 如果它不包含数据,请将持久存储的位置记录到控制台(当您设置核心数据堆栈时),
cd
到文档文件夹并使用sqlite3
命令行工具。检查您期望的记录是否存在。
如果有效,则可能是数据的显示问题,而不是检索问题。