0

2つの文字列と1つの整数を含むエンティティからTableViewControllerを更新しています。文字列は正しく機能し、整数は機能しません。これが私のコードです。

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

    if (!cell) {
        cell = [[GolfersCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }

    Users *users = [_fetchedResultsController objectAtIndexPath:indexPath];

    cell.firstName.text = users.firstName;
    cell.lastName.text = users.lastName;
        int i = [users.gendID intValue] ;
    cell.genID.text = [NSString stringWithFormat:@"%d", i];

    [self configureCell:cell atIndexPath:indexPath];

    return cell;
}

これで機能し、「int i =[users.gendIDintValue];」という行をコメントアウトします。それを残し、プログラムをステップスルーすると、このエラーが返されます。

2012-04-30 16:49:02.369 My App [9757:fb03] -[Users gendID]: unrecognized selector sent to instance 0x6b8a6c0
2012-04-30 16:49:02.373 My App[9757:fb03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Users gendID]: unrecognized selector sent to instance 0x6b8a6c0'
*** First throw call stack:
(0x16b0022 0x1841cd6 0x16b1cbd 0x1616ed0 0x1616cb2 0x3a6d 0xb5c54 0xb63ce 0xa1cbd 0xb06f1 0x59d21 0x16b1e42 0x2068679 0x2072579 0x1ff74f7 0x1ff93f6 0x1ff8ad0 0x168499e 0x161b640 0x15e74c6 0x15e6d84 0x15e6c9b 0x15997d8 0x159988a 0x1b626 0x28bd 0x2825)
terminate called throwing an exception(lldb)
4

2 に答える 2

1

Lightforce の提案に加えて、セルの内容を 2 つの場所にロードするべきではありません。名、姓、および genID を設定した後、コードはインデックス パスで configure cell を呼び出します。その方法に問題があるのか​​もしれません。設定コードをどちらか一方に配置しますが、2 つのメソッド間で広げないでください。

于 2012-05-01T14:39:42.727 に答える
0

私にはタイプミスのように見えます。コードでは、ユーザー プロパティ名は gendID ですが、セルのプロパティは genID です。「インスタンスに送信された認識されないセレクター」は、そのクラスにそのようなメソッドが定義されていないことを意味します。ユーザー クラスに「gendID」という名前のメソッド/プロパティが実際に含まれていることを確認します。

于 2012-05-01T08:03:11.123 に答える