РЕДАКТИРОВАТЬ: Это, кажется, ошибка Swift или Cocoapods.LinePlot
определяется в Cocoapod.Когда я внедряю свой код фреймворка непосредственно в мой проект, все нормально.
РЕДАКТИРОВАТЬ 2: При configure
мой массив plotPoints
имеет только одно значение (замечено в отладчике)!Что может случиться?Опять же, скопировав код моего фреймворка и используя этот новый объект, все работает нормально, у моего массива есть свои значения.
Я получаю неправильный доступ при вызове метода в пользовательском UIView (LinePlot).Представление представлено в порядке и выделено в порядке, но вызов этого метода приводит к ошибке.
Я попытался использовать отладчик и проверить данные экземпляра tableViewCell.
let customView = LinePlot()
public func configure<ViewDataModel>(model withViewData: ViewDataModel) {
guard let viewData = withViewData as? StockPlotViewData else {
fatalError("Wrong type sent to StockPlotCell")
}
contentView.addSubview(customView)
backgroundColor = .blue
setupCustomView()
let plotPoints: [CGPoint] = viewData.points.map { (doublePoint) -> CGPoint in
let (x,y) = doublePoint
return CGPoint(x: x, y: y)
}
customView.configure(withViewData: plotPoints, fillColor: .clear, graphLineWidth: 5.0)
}
Я ожидаю, что 'LinePlot' будет выделен и его методы можно будет безопасно вызывать.Однако я получаю следующую ошибку:
Thread 1: EXC_BAD_ACCESS (code=2, address=0x10c35e750)
on line
customView.configure(withViewData: plotPoints, fillColor: .clear, graphLineWidth: 5.0)