0

新しい Mac を手に入れたばかりで、Appstore から Xcode (4.5.1) をダウンロードしました。デフォルトでは、新しいプロジェクトを作成すると (私の場合は、ストーリーボードが有効になっているマスター/詳細テンプレートを使用して)、ios 6.0 がターゲットになり、プロジェクトは 6.0 にアップグレードされた iPhone で正常に動作します。

私の iPhone で 5.1.1 を実行するには、Deployment ターゲットを変更します。アイテムが追加され、UITableView に表示されるときに 5.1.1 で実行すると、次のエラーが発生します。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason:' -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: 
unrecognized selector sent to instance 0x1023b800'

これはエラーを発生させるコードです

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

    NSDate *object = _objects[indexPath.row];
    cell.textLabel.text = [object description];
    return cell;
}

私の以前のiPhoneプロジェクトから、私はこれを下に見ることに慣れています

if(cell == nil)
// Create the cell

しかし、ストーリーボードにはすでに UITableView にセルが追加されているので、これは必要ないと思います。

任意のヒント..?

敬具オイシュタイン

4

2 に答える 2

6

この問題は、[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]のドキュメントに記載されています。

iOS6.0以降で利用できます。

于 2012-10-06T09:12:32.137 に答える
1

問題のあるコード行をに変更しました

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" ];

基本的にドロップforIndexPath:indexPathして動作しました。現在、さらに多くのコードを試しており、問題が発生した場合は報告します。

于 2012-10-12T05:52:04.497 に答える