web-dev-qa-db-ja.com

ストーリーボードの警告:プロトタイプテーブルセルには再利用識別子が必要です

ストーリーボードからこの警告を受け取っています-プロトタイプテーブルセルには再利用識別子が必要です。

属性インスペクターで識別子の名前を変更しましたが、警告が削除されていないようです。

助言がありますか?

115
K.Honda

警告を止めるには、セル識別子に名前を付ける必要があります。

enter image description here

153
aleroot

もう1つの方法は、.xibをプログラムで使用してセルを定義する場合、属性インスペクターでテーブルビューの「プロトタイプセル」プロパティをゼロに設定することです。

Setting prototype cells to 0 in Attributes Inspector

17
bitsand

ストーリーボードは実際にはXMLファイルなので、別のトリックは、ストーリーボードを(Xcodeではなく)任意のテキストエディターで開き、すべてのtableViewCellノードを見つけようとすることです。たとえば、CMD + Fを押し、<tableViewCell contentMode="scaleToFill"と入力してEnterを押します。おそらく、これと同じ行を見つけるでしょう:

<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="GenericCellID" id="kBr-Qn-Tki">

reuseIdentifier="GenericCellID"キー値に注意してください。 (再利用識別子なしで)警告を発する行には、そのようなキー値はありません。テキストエディターで上記のノードを見ると、alecodeの回答に従って、Xcodeのストーリーボードエディターでチェックして修正する必要があるクラス名を持つtableViewControllerノードが表示されます。

9
Dmitry Varavkin

ReloadIdentifierを設定してもXcodeの警告が消えない場合は、メニュー「製品->クリーン」を試してください。これは私にとって助けになり、その後、警告は表示されなくなりました。

4
Marcel Wassmer

あられ:XCodeの再起動はうまくいきました(ただし、おそらく手動での再構築が必要でした)。

2
Hannele

この警告をダブルクリックすると、野生のガチョウの追跡が少し発生する可能性があるため(特定のUITableViewCellが選択されない)、これらの警告の一部は自動解決されますが、それを追加したいだけです一部はそうではありません

Storyboardですべてのセルにタグを付けたと確信している場合は、プロジェクトを再構築します-警告が消えることがあります(私の場合と同様)。

2
Sitric

復元IDではなく、オブジェクトに再利用識別子を設定していることを確認してください。どちらもストーリーボードから入手でき、簡単に混同されます。

ストーリーボードXMLファイルでは、reuseIdentifierではなく、restorationIdentifierを設定する必要があります。

1
pkamb

Xcode 7でこの警告が出ました。私はSwiftで作業しています。最初のView ControllerにNavigation Controllerを追加しませんでした。私がそうしたとき.. StoryBoardからこの警告を受けました。私がしたことは:

  1. 2つのセグエがあります
    1. navigation ControllerからRoot View Controllerへ
    2. ルートView Controllerから初期View Controllerまで。
  2. ルートView Controllerを初期View Controllerに接続するセグエを選択します。
  3. 識別子に名前を付ける
  4. コントローラの「プロトタイプ」と書かれた部分を選択します->そこにオプションとして識別子が表示されます。
  5. 前に入力した識別子と同じ名前を貼り付けます。

警告が表示されます..sdkを削除しない場合:)

1
Mili

複数のプロトタイプセル(TableViewプロパティに)があり、それらのallが識別子を再利用していない場合、このエラーが発生することに気付きました。

0
Tjalsma

識別子は、.mファイルで参照する名前です。塗りつぶされていない場合、セルを参照することはできません。

0
Vincent

プログラムによって再利用識別子を設定するためのこれ

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

    if (!cell)
        cell = [[UITableViewCell alloc] initWithStyle: someStyle reuseIdentifier: cellIdentifier];

    return cell;
}
0
Mukesh