ขออภัยหากมีการถามก่อนหน้านี้ฉันได้ค้นหาหลายรอบและคำตอบมากมายมาจาก Swift betas ก่อนหน้านี้เมื่อสิ่งต่างๆแตกต่างออกไป ดูเหมือนจะหาคำตอบที่ชัดเจนไม่ได้
ฉันต้องการคลาสย่อยUIViewController
และมีตัวเริ่มต้นที่กำหนดเองเพื่อให้ฉันตั้งค่าในโค้ดได้อย่างง่ายดาย ฉันประสบปัญหาในการทำสิ่งนี้ใน Swift
ฉันต้องการinit()
ฟังก์ชั่นที่ฉันสามารถใช้เพื่อส่งผ่านเฉพาะที่NSURL
ฉันจะใช้กับตัวควบคุมมุมมอง init(withImageURL: NSURL)
ในใจของฉันมันมีลักษณะคล้าย ถ้าฉันเพิ่มฟังก์ชันนั้นจะขอให้ฉันเพิ่มinit(coder: NSCoder)
ฟังก์ชันนั้น
ฉันเชื่อว่าเป็นเพราะมันถูกทำเครื่องหมายในซูเปอร์คลาสด้วยrequired
คีย์เวิร์ด? ดังนั้นฉันต้องทำใน subclass? ฉันเพิ่มมัน:
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
ตอนนี้เป็นอย่างไร เริ่มต้นพิเศษของฉันถือเป็นconvenience
หนึ่งหรือไม่? หนึ่งที่กำหนด? ฉันเรียก super initializer หรือไม่? initializer จากคลาสเดียวกัน?
ฉันจะเพิ่มโปรแกรมเริ่มต้นพิเศษของฉันลงในUIViewController
คลาสย่อยได้อย่างไร