0

私はこのヘッダーを持っています:

@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)

ここで何が問題なのかを理解するのを手伝ってくれる人はいますか?

ありがとう!

4

1 に答える 1

1

MyBussinessViewControllerをInterfaceBuilderのデータソースとして設定した可能性がありますが、データソースメソッドは設定していません。Interface Builderでテーブルビューを右クリックし、データソースフィールドが何に接続されているかを確認することで確認できます。

参考までに、次のものが必要です。

tableView:numberOfRowsInSection:
numberOfSectionsInTableView:
tableView:cellForRowAtIndexPath:

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

ハッピーコーディング。

于 2012-07-30T01:58:17.067 に答える