Мне нужно выполнить запрос выборки. Но когда я это делаю, я получаю не ошибку NSManagedObject
s (каждый из объектов составляет около 5 Мб, вот почему я получаю предупреждение о памяти). Apple предоставляет ошибка возможность для основных данных (когда объекты не загружаются в ОЗУ). И я хочу, чтобы мои объекты использовали эту возможность.Основные данные. ExecuteFetchRequest с ошибкой NSManagedObjects (не в ОЗУ)
Вот мой код
+ (NSMutableSet *)GetImagesWithPredicate:(NSPredicate *)predicate
{
NSString *entityName = kEntityName;
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];;
NSManagedObjectContext *context = appDelegate.managedObjectContext;
NSEntityDescription *entityDesctiption = [NSEntityDescription
entityForName: entityName
inManagedObjectContext:context];
// find object
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesctiption];
[request setPredicate:predicate];
NSArray *objects = [context executeFetchRequest:request error:nil];
[request release];
if (objects == nil)
{
NSLog(@"there was an error");
return nil;
}
NSMutableSet *set = [NSMutableSet setWithArray:objects];
return set;
}
где предикат (id < 500)
.
App падает после
NSArray *objects = [context executeFetchRequest:request error:nil];
, потому что все данные объектов появляется в оперативной памяти iPhone.
Похоже, что опция по умолчанию returnsObjectsAsFaults = YES
не работает.
Не могли бы вы разместить журнал аварий? Кроме того, скажите что-нибудь о вашей модели и изображениях (размер). –
Не было аварийного лога. Просто предупреждение о памяти, а затем он разбился. Когда я попытался извлечь только 5 объектов - все в порядке (настроено fetchLimit) –