Xin lỗi nếu điều này đã được hỏi trước đây, tôi đã tìm kiếm xung quanh rất nhiều và nhiều câu trả lời là từ các bản Swift beta trước đó khi mọi thứ đã khác. Tôi dường như không thể tìm thấy một câu trả lời dứt khoát.
Tôi muốn phân lớp UIViewController
và có bộ khởi tạo tùy chỉnh để cho phép tôi thiết lập nó trong mã dễ dàng. Tôi đang gặp sự cố khi thực hiện việc này trong Swift.
Tôi muốn một init()
hàm mà tôi có thể sử dụng để chuyển một hàm cụ thể NSURL
sau đó tôi sẽ sử dụng với bộ điều khiển chế độ xem. Trong tâm trí của tôi, nó trông giống như một cái gì đó init(withImageURL: NSURL)
. Nếu tôi thêm chức năng đó thì nó sẽ yêu cầu tôi thêm init(coder: NSCoder)
chức năng đó.
Tôi tin rằng điều này là do nó được đánh dấu trong lớp cha bằng required
từ khóa? Vì vậy, tôi phải làm điều đó trong lớp con? Tôi thêm nó:
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
Giờ thì sao? Trình khởi tạo đặc biệt của tôi có được coi là convenience
một? Một cái được chỉ định? Tôi có gọi một trình khởi tạo siêu không? Một trình khởi tạo từ cùng một lớp?
Làm cách nào để thêm trình khởi tạo đặc biệt của tôi vào một UIViewController
lớp con?