使用核心数据获得sigabrt错误

时间:2012-04-24 22:01:37

标签: objective-c

我正在学习核心数据,当时我已经完成了第一部分,但是当我尝试在下一个表视图中保存教授时,我得到了一个signbrt错误。错误发生在第8行。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return [(NSSet *)[department valueForKey:@"Professors"] count]; // uses the department's 
    // "Professors" relationship to get the number of professors in the department entity  
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"ProfessorCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
    }

    NSManagedObject *professor = [[self sortProfessors] objectAtIndex:indexPath.row];
    cell.textLabel.text = [NSString stringWithFormat:@"%@ %@", 
                           [[professor valueForKey:@"FirstName"] description], 
                           [[professor valueForKey:@"LastName"] description]];
    cell.detailTextLabel.text = [[professor valueForKey:@"EMail"] description];
    return cell;
}

这是我运行应用程序后打印的文字。

2012-04-24 17:43:08.808 BlahBlah[2905:b603] Department Saved in the persistent data store
2012-04-24 17:43:08.812 BlahBlah[2905:b603] -[NSManagedObject count]: unrecognized selector sent to instance 0x5a84a70
2012-04-24 17:43:08.815 BlahBlah[2905:b603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSManagedObject count]: unrecognized selector sent to instance 0x5a84a70'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x00fa35a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x010f7313 objc_exception_throw + 44
    2   CoreFoundation                      0x00fa50bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x00f14966 ___forwarding___ + 966
    4   CoreFoundation                      0x00f14522 _CF_forwarding_prep_0 + 50
    5   BlahBlah                            0x00005423 -[ProfessorListViewController tableView:numberOfRowsInSection:] + 115
    6   UIKit                               0x001db2b7 -[UISectionRowData refreshWithSection:tableView:tableViewRowData:] + 1834
    7   UIKit                               0x001d8d88 -[UITableViewRowData numberOfRows] + 108
    8   UIKit                               0x0008c677 -[UITableView noteNumberOfRowsChanged] + 132
    9   UIKit                               0x00099708 -[UITableView reloadData] + 773
    10  BlahBlah                            0x00005212 -[ProfessorListViewController viewWillAppear:] + 146
    11  UIKit                               0x000d8210 -[UINavigationController viewWillAppear:] + 334
    12  UIKit                               0x002ce8e4 -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:] + 6192
    13  UIKit                               0x000d3385 -[UIViewController _dismissModalViewControllerWithTransition:from:] + 2058
    14  UIKit                               0x000cfeb8 -[UIViewController dismissModalViewControllerWithTransition:] + 940
    15  BlahBlah                            0x000060d8 -[ProfessorDataEntryController save:] + 648
    16  UIKit                               0x0001e4fd -[UIApplication sendAction:to:from:forEvent:] + 119
    17  UIKit                               0x000ae799 -[UIControl sendAction:to:forEvent:] + 67
    18  UIKit                               0x000b0c2b -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
    19  UIKit                               0x000af7d8 -[UIControl touchesEnded:withEvent:] + 458
    20  UIKit                               0x00042ded -[UIWindow _sendTouchesForEvent:] + 567
    21  UIKit                               0x00023c37 -[UIApplication sendEvent:] + 447
    22  UIKit                               0x00028f2e _UIApplicationHandleEvent + 7576
    23  GraphicsServices                    0x011dc992 PurpleEventCallback + 1550
    24  CoreFoundation                      0x00f84944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    25  CoreFoundation                      0x00ee4cf7 __CFRunLoopDoSource1 + 215
    26  CoreFoundation                      0x00ee1f83 __CFRunLoopRun + 979
    27  CoreFoundation                      0x00ee1840 CFRunLoopRunSpecific + 208
    28  CoreFoundation                      0x00ee1761 CFRunLoopRunInMode + 97
    29  GraphicsServices                    0x011db1c4 GSEventRunModal + 217
    30  GraphicsServices                    0x011db289 GSEventRun + 115
    31  UIKit                               0x0002cc93 UIApplicationMain + 1160
    32  BlahBlah                            0x00001ba9 main + 121
    33  BlahBlah                            0x00001b25 start + 53
)
terminate called throwing an exceptionsharedlibrary apply-load-rules all
Current language:  auto; currently objective-c
(gdb) 

1 个答案:

答案 0 :(得分:1)

看看你的模型,确保'教授'被宣布为部门之间的多对多关系。