0
标准的新手问题。我为iOS应用程序创建了一个数据模型。我能够通过使用NSEntityDescription对象在各种视图中创建,更新和删除模型中的实体。核心数据和生成模型实体
说出是否存在从提取请求返回的可变对象数组。当我没有从实体模型生成对象定义时,如何循环遍历每一个对象?通过生成的对象定义,我的意思是数据模型包中描述的实体的头和主体类定义。
标准的新手问题。我为iOS应用程序创建了一个数据模型。我能够通过使用NSEntityDescription对象在各种视图中创建,更新和删除模型中的实体。核心数据和生成模型实体
说出是否存在从提取请求返回的可变对象数组。当我没有从实体模型生成对象定义时,如何循环遍历每一个对象?通过生成的对象定义,我的意思是数据模型包中描述的实体的头和主体类定义。
所有的CoreData实体都是从NSManagedObject派生而来的,所有的数据库数据都可以通过键值编码来访问。您需要知道的最低限度可以从模型中获得。您不一定需要标题。
例如实体PersonEntity其与属性姓
NSArray *results = [managedObjectContext queryEntityForName:@"PersonEntity" predicateFormat:nil argumentArray:nil];
for(NSManagedObject *object in results)
{
NSString *name = [object valueForKeyPath:@"nameobject.firstname";
[self doSomething:name];
}
queryEntityForName是我自己的类来NameEntity的关系。你可能会觉得它很有用。
@implementation NSManagedObjectContext(VMQueryAdditions)
-(NSArray *)queryEntityForName:(NSString *)name predicateFormat:(NSString *)pstring argumentArray:(NSArray *)arr
{
NSEntityDescription *entity = [NSEntityDescription entityForName:name inManagedObjectContext:self];
NSFetchRequest *fetch = [[[NSFetchRequest alloc] init] autorelease];
[fetch setEntity:entity];
NSPredicate *pred;
if(pstring)
{
if(arr) pred = [NSPredicate predicateWithFormat:pstring argumentArray:arr];
else pred = [NSPredicate predicateWithFormat:pstring];
[fetch setPredicate:pred];
}
NSError *error = nil;
NSArray *results = [self executeFetchRequest:fetch error:&error];
if (error) {
NSLog(@"MOC Fetch - Unresolved error %@, %@", error, [error userInfo]);
return [NSArray array];
}
return results;
}
@end
嗨沃伦。谢谢您的回答。 NSManagedObject确实是'for'循环所需的类。 – 2010-11-28 17:34:14