ios - tableView:numberOfRowsInSection ...使用UITableView时NSInvalidArgumentException

时间:2012-07-30 01:44:40

标签: ios uitableview ios5

我有这个标题:

@interface MyBusinessesController : UIViewController

@property (weak, nonatomic) IBOutlet UITableView *businessList;

@property (weak, nonatomic) IBOutlet UILabel *loadingLabel;

@end 

我在我的.m文件中有这个:

#import "MyBusinessesController.h"

@interface MyBusinessesController ()

@end

@implementation MyBusinessesController

@synthesize businessList;
@synthesize loadingLabel;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

       NSLog(@"HIDING 1");
    // HIDE THE LIST UNTIL IT LOADS
    self.businessList.hidden=TRUE;
       NSLog(@"HIDING 2");    
}

- (void)viewDidUnload
{
    [self setLoadingLabel:nil];
    [self setBusinessList:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

当此控制器运行时,两个NSLOG行都会执行,之后会发生异常。

以下是例外:

-[MyBusinessesController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x6a8f330
2012-07-29 21:31:38.355 BusinessPlan[3973:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MyBusinessesController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x6a8f330'
*** First throw call stack:
(0x13d5022 0x1566cd6 0x13d6cbd 0x133bed0 0x133bcb2 0x1fd06b 0x1ff862 0xad66d 0xad167 0xb0134 0xb4623 0x5dd42 0x13d6e42 0x1d8d679 0x1d97579 0x1d1c4f7 0x1d1e3f6 0x1d1dad0 0x13a999e 0x1340640 0x130c4c6 0x130bd84 0x130bc9b 0x12be7d8 0x12be88a 0x1f626 0x1bfd 0x1b65)

有人能帮我理解这里出了什么问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可能已将MyBussinessViewController设置为接口构建器中的数据源,但您未在其中设置数据源方法。您可以通过右键单击界面构建器中的tableview并查看数据源字段的连接来进行检查。

供参考,您需要:

tableView:numberOfRowsInSection:
numberOfSectionsInTableView:
tableView:cellForRowAtIndexPath:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html

快乐的编码。