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