ฉันได้รับคำเตือนนี้จากสตอรีบอร์ด - เซลล์ตารางต้นแบบต้องมีตัวระบุที่ใช้ซ้ำ
ฉันได้เปลี่ยนชื่อตัวระบุในตัวตรวจสอบแอตทริบิวต์ แต่ดูเหมือนว่าจะไม่ได้ลบคำเตือนออกไป
ข้อเสนอแนะใด ๆ ?
ฉันได้รับคำเตือนนี้จากสตอรีบอร์ด - เซลล์ตารางต้นแบบต้องมีตัวระบุที่ใช้ซ้ำ
ฉันได้เปลี่ยนชื่อตัวระบุในตัวตรวจสอบแอตทริบิวต์ แต่ดูเหมือนว่าจะไม่ได้ลบคำเตือนออกไป
ข้อเสนอแนะใด ๆ ?
คำตอบ:
ในการปิดคำเตือนคุณต้องตั้งชื่อให้กับตัวระบุเซลล์:
อีกวิธีหนึ่งคือการตั้งค่าคุณสมบัติ 'เซลล์ต้นแบบ' ของมุมมองตารางเป็นศูนย์ใน Attributes Inspector หากคุณกำลังกำหนดเซลล์โดยใช้. xib ตามโปรแกรม
เนื่องจากสตอรีบอร์ดเป็นไฟล์ 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"
สำคัญกับค่าคีย์ แถวที่เริ่มการเตือน (โดยไม่ใช้ตัวระบุซ้ำ) จะไม่มีค่าคีย์ดังกล่าว ดูโหนดด้านบนในโปรแกรมแก้ไขข้อความของคุณและคุณจะเห็นtableViewController
โหนดที่มีชื่อคลาสที่คุณต้องตรวจสอบในตัวแก้ไขสตอรีบอร์ดของ Xcode และแก้ไขตามคำตอบของ aleroot '
Open As
>>Source Code
หากคำเตือน Xcode ของคุณยังคงไม่หายไปแม้ว่าคุณจะตั้งค่า reuseIdentifier แล้วให้ลองใช้เมนู "ผลิตภัณฑ์ -> ทำความสะอาด" สิ่งนี้ช่วยฉันได้และหลังจากนั้นคำเตือนก็ไม่ปรากฏขึ้นอีก
เนื่องจากการคลิกสองครั้งที่คำเตือนนี้อาจนำไปสู่การไล่ล่าห่านป่า (UITableViewCell เฉพาะไม่ได้รับการเลือก) เพียงแค่ต้องการเพิ่มว่าในขณะที่คำเตือนเหล่านี้บางส่วนจะแก้ไขโดยอัตโนมัติ แต่บางส่วนจะไม่แก้ไข
หากคุณมั่นใจว่าได้ติดแท็กเซลล์ทั้งหมดของคุณใน Storyboard แล้วให้สร้างโปรเจ็กต์ใหม่ - คำเตือนของคุณอาจหายไป (เช่นเดียวกับของฉัน)
แมรี่ลูกเห็บ: การรีสตาร์ท XCode ใช้งานได้สำหรับฉัน (แต่อาจเป็นเพียงการสร้างด้วยตนเองที่จำเป็น)
ฉันได้รับคำเตือนนี้สำหรับ Xcode 7 ฉันกำลังทำงานกับ Swift ฉันไม่ได้เพิ่มตัวควบคุมการนำทางสำหรับตัวควบคุมมุมมองเริ่มต้น เมื่อฉันทำเช่นนั้น .. ฉันได้รับคำเตือนนี้จาก StoryBoard สิ่งที่ฉันทำคือ:
คำเตือนไป .. ถ้าไม่ทำความสะอาด sdk :)
ให้แน่ใจว่าคุณได้รับการตั้งค่าการใช้ซ้ำ Identifierบนวัตถุมากกว่าID ฟื้นฟู ทั้งสองอย่างมีอยู่ในสตอรีบอร์ดและสับสนได้ง่าย
ในไฟล์ XML กระดานที่คุณจะต้องการที่จะได้รับการตั้งค่าไม่ได้reuseIdentifier
restorationIdentifier
ฉันพบว่าข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณมีเซลล์ต้นแบบหลาย ๆ (ในคุณสมบัติของ tableview) และยังไม่ได้ให้ทั้งหมดของพวกเขากลับมาใช้ตัวบ่งชี้
ตัวระบุคือชื่อที่คุณอ้างถึงในไฟล์. m ของคุณ เมื่อไม่ได้เติมเต็มจะไม่สามารถอ้างอิงเซลล์ได้
สิ่งนี้สำหรับการตั้งค่าตัวระบุการใช้ซ้ำโดยทางโปรแกรม
-(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;
}