我一直收到錯誤「終止應用程序,由於未捕獲的異常'NSInvalidArgumentException',原因:'+ [MainViewController minimalFormInContext:]:無法識別的選擇器從這行代碼發送到類」 : 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 2010-09-06 00:05:22
我的mArray代表mineArray。我試圖做的是創建一個臨時用於程序的實體數組;有沒有更好的方法將數據從提取請求放入數組中?在使用謂詞之前,我編輯了謂詞等於零。 – 2010-09-06 00:43:44
,並且似乎將它們設置爲nil是否定的,所以我只是將它們設置爲等於其他謂詞。 – 2010-09-06 00:58:32