0

(チャットメッセージをテーブルに表示するアプリを開発しています。しかし、ユーザーがチャットビューを開くメッセージを受信すると、このチャットをユーザーが開始することはできません。したがって、このコードを作成しました:

- (void) newMessageReceived:(NSMutableDictionary *)message
{
   General *general = [General sharedManager];
   NSString *firstmessage=[message objectForKey:@"msg"];
   NSString *from=[message objectForKey:@"sender"];    
   NSArray *listItems = [from componentsSeparatedByString:@"@"];
   NSString *fromsplit=[listItems objectAtIndex:0];
   general.firstmess=firstmessage;
   general.firstfrom=fromsplit;
   NSLog(@"Mensaje recibido: %@ de %@", [message objectForKey:@"msg"], fromsplit);

   ChatViewController *cvc=[[ChatViewController alloc]initWithNibName:@"Chat" bundle:nil];

   [[self navigationController]pushViewController:cvc animated:YES];
}

ここまでは大丈夫です。ChatViewController は UITableViewController を拡張します。ただし、メッセージを受信すると、次の例外が発生します。

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "Chat" nib but didn't get a UITableView.

次に、UIViewController に拡張されたクラスを変更しようとします (プログラムが numberOfRowsInSection メソッドに入ることを確認するためにこれを行いました)。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ChatViewController setTableViewStyle:]: unrecognized selector sent to instance 0x9863200'

最初の例外を解決すると問題が解決すると思います。何か助けはありますか?

ありがとうございました。

4

2 に答える 2

1
In the second exception i think you have called [self setTableViewStyle:] method, while   

you have made it UIViewController.

So try to call this method by tableViewOutlet.

[tableView setTableViewStyle:];

これがお役に立てば幸いです

于 2012-06-13T14:46:44.107 に答える
0

解決しました。.xibファイルをクリックし、[オブジェクト]の下の[表示]をクリックします。次に、Identity Inspector(左から3番目)のカスタムクラスで、UITableViewに設定します。以前は単に「表示」でした。そして、すべてがうまくいきました。

于 2012-06-13T13:00:01.663 に答える