Я продолжаю получать сообщение об ошибке «Завершение приложения из-за неперехваченного исключения» NSInvalidArgumentException », причина:« + [MainViewController minimumFormInContext:]: нераспознанный селектор, отправленный классу « » из этой строки кода: NSLog (@ «Доступ к конкретным объектам мины»);Проблемы с копированием данных в изменяемый массив
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Mine" inManagedObjectContext:managedObjectContext];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
NSError *error = nil;
[request setEntity:entity];
NSPredicate *predicate;
NSPredicate *metalFilter;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *region = [defaults stringForKey:@"mineArray"];
if([region isEqualToString:@"Butte & Plumas"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@)",@"Butte",@"Plumas"];
}
else if([region isEqualToString:@"Sutter, Yuba, & Sierra"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@) OR (county Contains %@)",@"Sutter",@"Yuba",@"Sierra"];
}
else if([region isEqualToString:@"Nevada & Placer"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@)",@"Nevada",@"Placer"];
}
else if([region isEqualToString:@"Sacramento & El Dorado"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@)",@"Sacramento",@"El Dorado"];
}
else if([region isEqualToString:@"San Joaquin, Amador, & Calaveras"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@) OR (county Contains%@)",@"San Joaquin",@"Amador", @"Calaveras"];
}
else if([region isEqualToString:@"Tuolumne & Stanislaus"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@)",@"Tuolumne",@"Stanislaus"];
}
else if([region isEqualToString:@"Merced, Mariposa, & Madera"])
{
predicate = [NSPredicate predicateWithFormat:@"(county Contains %@) OR (county Contains %@) OR (county Contains %@)",@"Merced",@"Mariposa",@"Madera"];
}
[request setPredicate:predicate];
mArray = [[NSMutableArray alloc] init];
mArray = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
с помощью отладчика, я сузил ошибку, встречающиеся в:
mArray = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
Как это исправить?
Я сильно подозреваю, что последний - неверный селектор, указанный в качестве метода NSPredicate. Таким образом, вероятно, переменная, которую он думает указывает на NSPredicate, фактически указывает на случайную ячейку памяти. – Chuck
мой mArray означает myArray. То, что я пытаюсь сделать, - создать массив объектов для использования в программе временно; есть ли лучший способ разместить данные в массиве из запроса на выборку? Я изменил предикаты до нулевого значения до их использования. –
, и кажется, что установить их в nil - нет-нет, поэтому я просто установил их равными некоторому другому предикату. –