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


123

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

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

助言がありますか?


間違ったフィールドに入力したか、テーブルビューが複数あります。属性インスペクターのスクリーンショットを投稿できますか?
jrturton 2012年

3
それは今は仲間です。解決策を見つけました。Identifierの値は、reuse identifierと同じでなければなりません。:)
K.Honda

すべてのセルに識別子を設定しましたか?
Mick MacCallum

こんにちはホンダ!同じエラーが発生するので、何をしたか教えてください。
Varun Mehta、2012年

2
私は時々(現在最新のXcode 5 Beta 5(5B103iを使用))ストーリーボードのエラー/警告の間違った場所を強調表示することに気づきました。したがって、警告をクリックすると、同じような警告がすでに修正されている可能性がある誤った場所が表示されることがあります。ストーリーボードにあるテーブルビューを手動で確認し、識別子が欠落している他のセルがあるかどうかを確認することをお勧めします。上記はこの警告で私の問題を解決しました。このトピックは問題の修正方法を理解するのに役立ちました。質問をしてくれた@ K.Hondaに感謝します。
Justas 2014年

回答:


159

警告をシャットダウンするには、セル識別子に名前を付ける必要があります。

ここに画像の説明を入力してください


14
に私に起こった。xcodeを閉じる-開いてから識別子を変更する
Idan Magled

7
警告が残っている場合、StoryBoardのどこかに識別子のないセルがまだあることを意味します
saimonx

プロトタイプセルが複数ある場合は、それらにすべて修飾子を付ける必要があります。そうでない場合は、プロトタイプセルで数値を1に設定するだけです
user1700737

6
Derived Dataフォルダー(Windowsの再起動に相当するXcode)を削除し、この偽の警告を取り除くために再構築する必要がありました。
Michael McGuire

これは私にとってうまくいきました:Xcodeを閉じ、Finderで/ Users / username / Library / Developer / Xcode / DerivedDataを開いて、そのコンテンツをすべて削除します(DerivedDataフォルダー自体ではありません)。
dldnh

18

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

属性インスペクターでプロトタイプセルを0に設定


9

ストーリーボードは実際には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"キーバリューにご注意ください。警告を発する行(再利用識別子なし)には、そのようなキー値はありません。tableViewControlleralerootの回答によると、テキストエディターで上記のノードを見ると、Xcodeのストーリーボードエディターでチェックして修正する必要があるクラス名のノードが表示されます。


1
ストーリーボードファイルをCTRL Open AsSource Code
キーを押しながら

4

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


2

この警告をダブルクリックすると、ちょっとしたワイルドグースチェイスが発生する可能性があるため(特定のUITableViewCellが選択されない)、これらの警告の一部は自動解決されますが、そうでないものもあります。

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


2

こんにちは。XCodeを再起動することでうまくいきました(ただし、必要なのはおそらく手動による再構築だけでした)。


1

Xcode 7でこの警告が表示されました。Swiftを使用しています。最初のビューコントローラにはナビゲーションコントローラを追加していません。私がそうしたとき.. StoryBoardからこの警告を受けました。私がしたことは:

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

警告が表示されます.. sdkをクリーンアップしない場合:)


1

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

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


0

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


私もこれを見たことがありますが、一度にすべてのセルに名前を付ける方法はありますか、またはこれらの警告を削除する別の方法はありますか?
CatsLoveJazz 14

1
すべてのPrototyeセルには、固有の名前が必要です。したがって、自動的に行う方法はありません
Vincent

0

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


0

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

-(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;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.