为什么UITableView没有在UIViewController上显示?

时间:2016-11-29 06:29:23

标签: ios objective-c iphone uitableview uiviewcontroller

我正在尝试在UITableView内设置UIViewController。我正在使用故事板。但是在模拟器上运行时,tableview不会显示。这是Xcode中的简单视图:

@implementation ForthViewController{
    NSArray *menuItems;        
}

- (void)viewDidLoad {
    [super viewDidLoad];
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];    
    NSArray *o = [prefs mutableArrayValueForKey:@"option"];
    NSLog(@"%@",o);
    menuItems =[NSArray arrayWithArray:o];
    [self viewrequest];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [menuItems count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *simpleTableIdentifier = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }
    cell.textLabel.text = [menuItems objectAtIndex:indexPath.row];
    return cell;
}

我收到以下错误:

2016-11-29 11:57:44.987 Wellness_24x7[1400:46606] -[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x7a67d160
2016-11-29 11:57:45.010 Wellness_24x7[1400:46606] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x7a67d160'
*** First throw call stack:
(
    0   CoreFoundation                      0x00b4da14 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x0060ee02 objc_exception_throw + 50
    2   CoreFoundation                      0x00b56d63 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
    3   CoreFoundation                      0x00a946bd ___forwarding___ + 1037
    4   CoreFoundation                      0x00a9428e _CF_forwarding_prep_0 + 14
    5   UIKit                               0x01884c1c -[UITableViewLabel setText:] + 120
    6   Wellness_24x7                       0x000f16c4 -[ForthViewController tableView:cellForRowAtIndexPath:] + 372
    7   UIKit                               0x014df398 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 822
    8   UIKit                               0x014df4e1 -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 90
    9   UIKit                               0x014af948 -[UITableView _updateVisibleCellsNow:isRecursive:] + 3347
    10  UIKit                               0x014ce0d6 __29-[UITableView layoutSubviews]_block_invoke + 52
    11  UIKit                               0x014e919e -[UITableView _performWithCachedTraitCollection:] + 88
    12  UIKit                               0x014cdfab -[UITableView layoutSubviews] + 214
    13  UIKit                               0x01424008 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 810
    14  libobjc.A.dylib                     0x00623059 -[NSObject performSelector:withObject:] + 70
    15  QuartzCore                          0x0569280a -[CALayer layoutSublayers] + 144
    16  QuartzCore                          0x056864ee _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 388
    17  QuartzCore                          0x05694d2a -[CALayer(CALayerPrivate) layoutBelowIfNeeded] + 44
    18  UIKit                               0x014117c0 -[UIView(Hierarchy) layoutBelowIfNeeded] + 1258
    19  UIKit                               0x014112c2 -[UIView(Hierarchy) layoutIfNeeded] + 82
    20  UIKit                               0x01585420 -[UITabBarController _layoutViewController:] + 845
    21  UIKit                               0x0158557a -[UITabBarController _wrapperViewForViewController:] + 262
    22  UIKit                               0x01591ba6 -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:] + 787
    23  UIKit                               0x01590a0e -[UITabBarController transitionFromViewController:toViewController:] + 76
    24  UIKit                               0x0158c0dd -[UITabBarController _setSelectedViewController:] + 453
    25  UIKit                               0x0158bee4 -[UITabBarController setSelectedViewController:] + 252
    26  UIKit                               0x01590839 -[UITabBarController _tabBarItemClicked:] + 587
    27  libobjc.A.dylib                     0x006230b5 -[NSObject performSelector:withObject:withObject:] + 84
    28  UIKit                               0x01359b79 -[UIApplication sendAction:to:from:forEvent:] + 118
    29  UIKit                               0x01359af8 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
    30  UIKit                               0x017a70fb -[UITabBar _sendAction:withEvent:] + 525
    31  libobjc.A.dylib                     0x006230b5 -[NSObject performSelector:withObject:withObject:] + 84
    32  UIKit                               0x01359b79 -[UIApplication sendAction:to:from:forEvent:] + 118
    33  UIKit                               0x01359af8 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
    34  UIKit                               0x014f98f8 -[UIControl sendAction:to:forEvent:] + 79
    35  UIKit                               0x014f9c78 -[UIControl _sendActionsForEvents:withEvent:] + 408
    36  UIKit                               0x014f9938 -[UIControl sendActionsForControlEvents:] + 48
    37  UIKit                               0x017ace41 -[UITabBar(Static) _buttonUp:] + 123
    38  libobjc.A.dylib                     0x006230b5 -[NSObject performSelector:withObject:withObject:] + 84
    39  UIKit                               0x01359b79 -[UIApplication sendAction:to:from:forEvent:] + 118
    40  UIKit                               0x01359af8 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
    41  UIKit                               0x014f98f8 -[UIControl sendAction:to:forEvent:] + 79
    42  UIKit                               0x014f9c78 -[UIControl _sendActionsForEvents:withEvent:] + 408
    43  UIKit                               0x014f8c7e -[UIControl touchesEnded:withEvent:] + 714
    44  UIKit                               0x013d6182 -[UIWindow _sendTouchesForEvent:] + 1095
    45  UIKit                               0x013d7220 -[UIWindow sendEvent:] + 1159
    46  UIKit                               0x0137bf93 -[UIApplication sendEvent:] + 266
    47  UIKit                               0x01351668 _UIApplicationHandleEventQueue + 7802
    48  CoreFoundation                      0x00a676ff __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
    49  CoreFoundation                      0x00a5d38b __CFRunLoopDoSources0 + 523
    50  CoreFoundation                      0x00a5c7a8 __CFRunLoopRun + 1032
    51  CoreFoundation                      0x00a5c0e6 CFRunLoopRunSpecific + 470
    52  CoreFoundation                      0x00a5befb CFRunLoopRunInMode + 123
    53  GraphicsServices                    0x05133664 GSEventRunModal + 192
    54  GraphicsServices                    0x051334a1 GSEventRun + 104
    55  UIKit                               0x01357bfa UIApplicationMain + 160
    56  Wellness_24x7                       0x000cba6a main + 138
    57  libdyld.dylib                       0x033c6a21 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

1 个答案:

答案 0 :(得分:3)

更改此行

cell.textLabel.text = [menuItems objectAtIndex:indexPath.row];

用这个

cell.textLabel.text = [NSString stringWithFormat:@"%@",[menuItems objectAtIndex:indexPath.row]];

问题 - 崩溃的原因是cell.textLabel.text期待NSString值并且您正在传递NSCFNumber,因此您需要转换NSCFNumber 1}}到NSString