Tôi đang cố gắng phân lớp UIView trong Swift.Ghi đè init() trong ứng dụng bị lỗi CustomUIView (EXC_BAD ACCESS)
Howver treo ứng dụng (EXC_BAD_ACCESS) khi khởi tạo được gọi là
Đây là lớp
class CustomActionSheet: UIView {
private var cancelButtonTitle: String!;
private var destructiveButtonTitle: String!;
private var otherButtonTitles: [String]!;
convenience init() {
self.init();//EXC_BAD_ACCESS
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder);
}
convenience init(cancelButtonTitle: String!, destructiveButtonTitle: String!, otherButtonTitles: [String]!) {
self.init();
self.cancelButtonTitle = cancelButtonTitle;
self.destructiveButtonTitle = destructiveButtonTitle;
self.otherButtonTitles = otherButtonTitles;
prepareUI();
}
func prepareUI() {
//BLABLABLABLABLA
}
}
Dưới đây là làm thế nào tôi gọi nó
var actionSheet: CustomActionSheet = CustomActionSheet(cancelButtonTitle: "Cancel", destructiveButtonTitle: "OK", otherButtonTitles: nil);
thử để thay thế self.init() bằng super.init() nhưng nó sẽ không co mpile.
Thông báo Lỗi:
Phải gọi một initializer được chỉ định của lớp cha 'UIView'
Thuận tiện initializer cho 'CustomActionSheet' phải ủy thác (với 'self.init') chứ không phải là chaining được kết tới một trình khởi tạo siêu lớp (với 'super.init')
Ý của bạn là đặt super.init() vào vị trí có lỗi? – spektr
super.init() thậm chí không biên dịch @choward. Tôi đã cập nhật câu hỏi của mình. – JayVDiyk