将核心数据对象传递给 didSelectRowAtIndexPath 上的子视图
Posted
技术标签:
【中文标题】将核心数据对象传递给 didSelectRowAtIndexPath 上的子视图【英文标题】:Passing a core data object to a sub view on didSelectRowAtIndexPath 【发布时间】:2012-11-21 09:31:13 【问题描述】:我有一个包含 2 个数据库实体的核心数据设置。为了名称,我将它们称为主要和次要。次要只属于一个主要(建立关系)。在列出表中主要对象的主视图中,我检索了它们并将它们放入存储它的属性(包括托管对象 ID)的 PriObject 类中。然后将 PriObject 添加到可变数组 (priArray),然后使用该数组填充数据表。到目前为止一切正常。当我点击该行时,我可以记录 PriObject.moID。
我不知道如何在数据库中查找该对象,因此我可以向其中添加辅助对象。我不能按名称进行操作,因为某些 Primary 可能具有相同的名称。
我需要弄清楚如何从 URI 或 ID 中取回对象。我有 ID,因此如果需要,我可以生成 URI。
完全无法理解它,而且我在查找时发现的任何示例都不能满足我的需要。有哪些选择?
编辑:我目前正在使用以下内容获取所有对象。
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Primary"
inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];
NSError *error;
NSArray *objects = [context executeFetchRequest:request
error:&error];
if ([objects count] == 0)
NSLog(@"Nothing found");
else
NSLog(@"Something found");
我怎样才能改变这个只是使用:
ObjectWithID:
【问题讨论】:
【参考方案1】:在您的 NSManagedObjectContext
实例上调用 objectWithID:
方法以检索实例。
顺便说一句,你似乎在用这个PriObject
类让自己变得更难,它似乎是你的NSManagedObject
实例的包装,对吗?我个人直接使用NSManagedObject
子类。
【讨论】:
你说得有道理,但我认为我的课会让任何重复的事情变得更容易做,即用 if 语句等切换桌子上的图像。我可能会让自己的生活更难老实说,但是因为我觉得它很复杂,所以我想让每个班级都尽可能干净。我将尝试使用您建议的代码,看看效果如何。以上是关于将核心数据对象传递给 didSelectRowAtIndexPath 上的子视图的主要内容,如果未能解决你的问题,请参考以下文章
从 UITableView 选择行时将核心数据对象传递给另一个视图控制器