【发布时间】:2010-11-08 01:30:59
【问题描述】:
我有一个相当复杂的托管数据模型,它有一个具有许多关系的中心对象,这些关系取决于各种属性的值。我使用 plist 集将初始数据导入模型,每个 plist 指定实体类的属性,然后根据这些属性填充关系。
我想修改关系的 getter 以自动获取受属性约束的对象。这里的原因是将关系构建移到托管对象中并移出导入逻辑,但我无法做到这一点,例如:
假设的 SubclassedManagedObject.m:
-1 #import "SubclassedManagedObject.h'
0 #import "OtherManagedObject.h"
1 @implementation SubclassedManagedObject
2 @dynamic attr1
3 @dynamic relation1 // which is an OtherManagedObject
4 - (OtherManagedObject *)relation1
5 {
6 if( relation1 != nil)
7 return relation1;
8 NSFetchRequest *request = [[NSFetchRequest alloc] init];
9 [request setEntity://the OtherManagedObject entity];
A [request setPredicate://predicate based on attr1];
B NSArray *results;
C results = [[self managedObjectContext] executeFetchRequest:request//..];
D if( [results count] )
E relation1 = [results objectAtIndex:0];
F }
在第 6 行编译时出现以下问题:
错误:“relation1”未声明(在此函数中首次使用)在 A 行,根据 attr1 的值构建谓词:
错误:“attr1”未声明(在此函数中首次使用)我的问题是我想做的可能或更有可能做的事情,有没有更好的方法来完成这个?
【问题讨论】:
标签: iphone iphone-sdk-3.0 core-data