2011-10-29 59 views
0

为什么我的代码在下面得到NSInvalidArgumentException?为什么我得到一个NSInvalidArgumentException?

终止应用程序由于未捕获的异常 'NSInvalidArgumentException',原因是:“ - [订购菜]:无法识别的选择发送到实例

(void)fetchDishRecords: (NSMutableArray*)array predicate: (NSString*)categoryname 
{ 
// Define our table/entity to use  
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Order" inManagedObjectContext:managedObjectContext]; 

// Setup the fetch request  
NSFetchRequest *request = [[NSFetchRequest alloc] init];  
[request setEntity:entity]; 

//set predicate 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Category=%@", categoryname];  
[request setPredicate:predicate]; 

//set sorting 
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Dish" ascending:YES];  
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];  
[request setSortDescriptors:sortDescriptors];  
[sortDescriptor release]; 

// Fetch the records and handle an error  
NSError *error;  
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; 
if (!mutableFetchResults)  
{   
    // Handle the error.  
}  
else  
{ 
    for(int i=0;i<[mutableFetchResults count];i++)   
    {    
     Order *orderObj = [mutableFetchResults objectAtIndex:i]; 
     //NSLog(orderObj.dish); 
     //NSString* tempStr = orderObj.dish; 
     [array addObject:orderObj.dish];   
    } 
}  
// Save our fetched data to an array  
[mutableFetchResults release];  
[request release]; 

回答

2
[array addObject:orderObj.dish];   

好像是罪魁祸首? orderObj是Order类的,错误表示它不能执行选择器菜。

确保您的订单类实施了-(void)dish方法。

相关问题