iPhone: ฉันต้อง (และอย่างไร) ปล่อยมุมมองย่อยของเซลล์มุมมองตารางที่กำหนดเองหรือไม่

ฉันมี TableViewCell-s แบบกำหนดเองโดยที่ฉันกำหนด UIImageView-s และ UILabel-s หลายอันให้กับมุมมองเนื้อหาของเซลล์เช่นนี้

[cell.contentView addSubview:iconFileView];
[iconFileView release];
[cell.contentView addSubview:areaLabel];
[areaLabel release];
[cell.contentView addSubview:placeLabel];
[placeLabel release];

ตามที่ฉันเข้าใจว่าเซลล์นั้นถูกเก็บรักษาโดย TableView และจะถูกปล่อยออกมาพร้อมกับมัน อย่างไรก็ตาม ฉันไม่เข้าใจว่าฉันต้องลบมุมมองย่อยของมุมมองเนื้อหาของเซลล์ออกจากมุมมองเนื้อหาเพื่อที่จะได้เผยแพร่หรือไม่

หากคำตอบคือใช่: ฉันจะทำเช่นนั้นได้อย่างไร? การค้นหาเซลล์ที่มองเห็นทั้งหมดและลบมุมมองย่อยออกจากแต่ละเซลล์เพียงพอหรือไม่

ไม่พบคำตอบที่แน่ชัดสำหรับคำถามนี้ในคู่มือการจัดการหน่วยความจำสำหรับ Cocoa

ขอบคุณ!


person Arts    schedule 17.02.2010    source แหล่งที่มา


คำตอบ (1)


contentView จะดูแลการปล่อยมุมมองย่อยเมื่อเซลล์ปล่อย contentView โดยพื้นฐานแล้ว เมื่อจำนวนเซลล์คงเหลือศูนย์ มันจะส่งข้อความเผยแพร่ไปที่ contentView หากจำนวนการเก็บรักษาของ contentView เป็นศูนย์ ระบบจะส่งข้อความเผยแพร่ไปยังมุมมองย่อยทั้งหมด รวมถึง iconFileView ฯลฯ ตราบใดที่คุณไม่ได้ส่งข้อความเก็บรักษาเพิ่มเติมใดๆ ไปยัง contentView หรือ iconFileView ฯลฯ คุณก็ควรจะสบายดี

หากคุณต้องการรู้สึกดีจริงๆ ให้รันโปรแกรมของคุณภายใต้ Leaks in Instruments ตรวจสอบให้แน่ใจว่าคุณทำทุกอย่างที่จำเป็นเพื่อทำให้ UITableViewCells ได้รับการเผยแพร่

person Rob Jones    schedule 17.02.2010