0

なぜこれが機能しないのですか...?

コア データ モデルに「Client」エンティティと「Car」エンティティがあります。これは 1 対多の関係です。テーブル ビュー コントローラーから「クライアント」を選択し、クライアントが所有するすべての車表示する新しいテーブル ビュー コントローラーをプッシュしました。

StackOverflow の他の回答の情報に基づいて、次の短いコードをコンパイルして、テーブル ビュー コントローラーのセルに表示する車の名前を追い出しました。

NSSet *cars = client.cars;
carsArray = [cars allObjects];
Car *car = (Car *)[carsArray objectAtIndex:indexPath.row];
cell.textLabel.text = [car carName];

ただし、これは機能していません。誰でも理由がわかりますか?それはうまくコンパイルされます。参考までに - 「クライアント」は選択されたクライアント オブジェクトです。carsArray は、viewcontroller ヘッダー ファイル内で宣言された NSArray であり、Car には「carName」という属性があります。

4

1 に答える 1

2

どのようなエラーが発生していますか &

新しい「プッシュされたView Controller」のどこでこれを呼んでいますか? tableView データソース メソッドを設定する前に、carsArray を作成する必要があります。

もちろん、「クライアント」の渡されたエンティティが nil でないことを確認してください。

これは、viewDidLoad または初期化子にある可能性があります。

NSSet *cars = client.cars;
carsArray = [cars allObjects];

以下は cellForRow.. にある可能性があります。

Car *car = (Car *)[carsArray objectAtIndex:indexPath.row];
cell.textLabel.text = [car carName];
于 2012-02-18T17:42:35.860 に答える