Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Storyboard warning: prototype table cells must have reuse identifiers

To shut up the warning you have to give a name to the cell identifier :

enter image description here


Another way is to set the Table View 'Prototype Cells' property to zero in Attributes Inspector, if you are defining the cell using a .xib programatically.

Setting prototype cells to 0 in Attributes Inspector


As storyboard is actually XML file, so another trick is to open your storyboard with any text editor (not Xcode!) and try to find all tableViewCell nodes. For example press CMD+F, type <tableViewCell contentMode="scaleToFill" and press Enter. You will probably find out, the rows same to this one:

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

Please pay your attention on reuseIdentifier="GenericCellID" key value. The rows which fire the warning (without reuse identifiers) will not have such key value. Look nodes above in your text editor and you will see tableViewController node with class name you need to check in Xcode's storyboard editor and fix, according to aleroot' answer.


If your Xcode warning still doesn't go away even after you have set the reuseIdentifier, then try Menu "Product -> Clean". This helped for me and after that, the warning didn't show up anymore.


Since double-clicking this warning can lead to a bit of a wild goose chase (the specific UITableViewCell doesn't get selected), just wanted to add that while some of these warnings will auto-resolve, some will not.

If you are confident you've tagged all your cells in Storyboard, rebuild the project - your warning may disappear (as did mine).


A hail mary: restarting XCode worked for me (but it was probably just a manual rebuild that was required).