Я имею дело с ошибкой XCode, которую я не понимаю, я уже несколько дней ищу решения, и обновление Pods, перезапуск XCode или что-то еще, похоже, не устраняет проблему...
У меня есть собственный класс, который расширяется от UIButton:
import Foundation
import UIKit
//@IBDesignable <-- COMMENTED BUT SAME ERRORS ...
class CustomCardButton: UIButton {
var nibName = "CustomCardButton"
@IBOutlet weak var btnImageView: UIImageView!
@IBOutlet weak var btnLabel: UILabel!
@IBInspectable var image: UIImage? {
get {
return btnImageView.image
} set(image) {
btnImageView.image = image
}
}
@IBInspectable var label: String? {
get {
return btnLabel.text
} set(label) {
btnLabel.text = label
}
}
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
func setup() {
let view = loadViewFromNib()
view.frame = self.bounds
view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
btnImageView.layer.cornerRadius = 60/2
btnImageView.layer.borderColor = UIColor(red: 5/255,
green: 66/255, blue: 38/255, alpha: 1).CGColor
btnImageView.layer.borderWidth = 2
btnLabel.font = UIFont.boldSystemFontOfSize(14.0)
btnImageView.userInteractionEnabled = true
btnLabel.userInteractionEnabled = true
view.userInteractionEnabled = true
addSubview(view)
}
func loadViewFromNib() -> UIButton {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: nibName, bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIButton
return view
}
}
Это хорошо скопированный код из SO: работать при нажатии
И мой файл xib выглядит так:
На данный момент я сделал это простым, вчера я попробовал его с более сложным (да, 2 метки и изображение, Woooh, сложное для xcode...), и у меня была та же ошибка..
Ошибки:
Предварительная компиляция:
После запуска приложения оно вылетает, и у меня есть это:
30 let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIButton
Поток 1: EXC_BAD ACCESS (код = 2, адрес = 0x16fc5bfd0)
31 let view = loadViewFromNib()
Поток 1: EXC_BAD ACCESS (код = 2, адрес = 0x16fc5bfd0)
32 setup()
Поток 1: EXC_BAD ACCESS (код = 2, адрес = 0x16fc5bfd0)
И у меня вылезли эти ошибки с 31 по 2840...
Я видел, что это ошибка XCode, и мы ничего не можем с этим поделать, но мне действительно нужна пользовательская кнопка с двумя метками и ImageVIEW...
instantiateWithOwner
возвращает массив? - person   schedule 26.05.2016print("BEFORE VIEW ") let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIButton print("VIEW : \(view)" )
И у меня есть цикл BEFORE VIEW, затем он вызывает исключение.. - person Nicolas Charvoz   schedule 26.05.2016