0

私はこれにかなり慣れていませんが、iOS シミュレーターでシミュレートしようとすると、停止し、このエラーが表示されます...ストーリーボードにテーブル ビュー用のビュー コントローラーを追加しました。ファイルを含めて、皆さんが私を助けるのに十分な情報を持っているようにします.

テーブルビューに配列のいくつかの要素を表示させようとしています。ナビゲーション コントローラーはルート ビュー コントローラーであり、配列コースを表示するテーブル ビュー コントローラーに直接入ります。

ここに私のアプリデリゲートがあります

//AppDeligate.m

#import "AppDelegate.h"
#import "CoursesViewController.h"
#import "Courses.h"

@implementation AppDelegate{
    NSMutableArray *courses;}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions 
(NSDictionary *)launchOptions
{
    courses = [NSMutableArray arrayWithCapacity:20];
    Courses *course = [[Courses alloc] init];
    course.code = @"SFWR 3X03";
    course.units = 3;
    [courses addObject:course];
    UINavigationController *navigationController =
    (UINavigationController *)self.window.rootViewController;
    CoursesViewController *CoursesViewController =
    [[navigationController viewControllers] objectAtIndex:1];
    CoursesViewController.courses = courses;
    return YES;
}

ここに私の CoursesViewController.m があります

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
    // Return the number of rows in the section.
    return [self.courses count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath     
*)indexPath
{
    UITableViewCell *cell = [tableView
                             dequeueReusableCellWithIdentifier:@"PlayerCell"];
    Courses *course = [self.courses objectAtIndex:indexPath.row];
    cell.textLabel.text = course.code;
    return cell;
}

ここに私の courseviewcontroller.h があります

#import <UIKit/UIKit.h>

@interface CoursesViewController : UITableViewController
@property (nonatomic, strong) NSMutableArray *courses;

@end

ここに私の course.m と course.h があります

#import "Courses.h"

@implementation Courses

@synthesize code;
@synthesize units;

.

#import <Foundation/Foundation.h>

@interface Courses : NSObject

@property (nonatomic, copy) NSString *code;
@property (nonatomic, assign) int units;
@end



@end

シミュレーターで実行しようとすると、main.m ファイルに切り替わり、スレッド 1 で SIGARBT エラーが表示されます。

十分な情報が含まれていない場合は、お知らせください。さらに投稿してください。

コンソール出力:

2012-10-04 14:44:14.726 MacMarks[475:c07] *** Terminating app due to uncaught exception     
'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the     
"fBI-R0-7j9-view-iYf-OA-4cJ" nib but didn't get a UITableView.'
*** First throw call stack:
(0x1c8e012 0x10cbe7e 0x1c8ddeb 0x242417 0xf4648 0xf4882 0xf4b2a 0x10bef5 0x10bfdb 0x10c286    
0x10c381 0x10ceab 0x10cfc9 0x10d055 0x2123ab 0x6392d 0x10df6b0 0x228afc0 0x227f33c   
0x228aeaf 0x1028cd 0x4b1a6 0x49cbf 0x49bd9 0x48e34 0x48c6e 0x49a29 0x4c922 0xf6fec 0x43bc4 
0x43dbf 0x43f55 0x4cf67 0x10fcc 0x11fab 0x23315 0x2424b 0x15cf8 0x1be9df9 0x1be9ad0   
0x1c03bf5 0x1c03962 0x1c34bb6 0x1c33f44 0x1c33e1b 0x117da 0x1365c 0x22fd 0x2225)
libc++abi.dylib: terminate called throwing an exception
(lldb) 
4

2 に答える 2

0

コメントを読むと、解決しようとしている問題を特定するのは少し難しいですが、このエラーは...

'-[UITableViewController loadView] loaded the     
"fBI-R0-7j9-view-iYf-OA-4cJ" nib but didn't get a UITableView.'

...テーブルビューコントローラのアウトレットに接続されているオブジェクトは、またはのサブクラスview以外のものであると言っています。ストーリーボードでそのコントローラーを見て、何がリンクされているかを確認します。UITableViewUITableViewview

于 2012-10-04T22:45:28.973 に答える
0

ストーリーボードを使用しているため、ナビゲーション コントローラーまたは CoursesViewController をインスタンス化するためにコードで何も実行しません (「return yes」以外に投稿したものはすべて削除する必要があります)。配列を CoursesViewController に取得するには、次のコードをその viewDidLoad メソッドに追加します。

    self.courses = [NSMutableArray arrayWithCapacity:20];
    Courses *course = [[Courses alloc] init];
    course.code = @"SFWR 3X03";
    course.units = 3;
    [courses addObject:course];
    [super viewDidLoad];
    [self.tableView reloadData];

.h ファイルに course (strong と入力) というプロパティがあると仮定しています。

于 2012-10-04T17:14:26.917 に答える