I’m tested on iPhone 8 (iOS 13.5.1) and iPad (iPadOS 13.5.1). On iPad the graph always works great but on iPhone sooner or later it always fails.
The exception is always “Thread 1: EXC_BAD_ACCESS (code=1, address=0x11d927ffc)” in the application main:
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); <–
}
}
in the task stack:
SciChart`XValuesProviderWrapper<int>::GetDoubleValue:
0x103b530e0 <+0>: ldr x8, [x0, #0x8]
0x103b530e4 <+4>: ldr w8, [x8, w1, sxtw #2] <--
0x103b530e8 <+8>: scvtf d0, w8
0x103b530ec <+12>: ret
The truth is, I have no idea what’s going on. .. Please, anyone know what might be happening?
Thank you very much!
Due to the app upgrade, the code is in objective-c. This is my initialization code:
- (void) loadSciChartSurface:(SCIChartSurface*)surface {
sciChartSurface = surface;
sciChartSurface.translatesAutoresizingMaskIntoConstraints = true;
// scroll
SCIZoomPanModifier *zoomPan = [SCIZoomPanModifier new];
zoomPan.receiveHandledEvents = true;
zoomPan.zoomExtentsY = false;
zoomPan.direction = SCIDirection2D_XDirection;
[sciChartSurface.chartModifiers add:zoomPan];
// zoom
SCIPinchZoomModifier *pinchZoomModifier = [SCIPinchZoomModifier new];
pinchZoomModifier.direction = SCIDirection2D_XDirection;
pinchZoomModifier.scaleFactor = 1.5;
[sciChartSurface.chartModifiers add:pinchZoomModifier];
// series
rSeries = [SCIFastLineRenderableSeries new];
xAxis = [SCINumericAxis new];
yAxis = [SCINumericAxis new];
xAxis.visibleRangeChangeListener = ^(id<ISCIAxis> axis, id<ISCIRange> oldRange, id<ISCIRange> newRange, BOOL isAnimating) {
int min = newRange.minAsDouble;
int max = newRange.maxAsDouble;
int center = (min + max) / 2;
if (center <= 0) {
axis.visibleRange.min = @(0.0 - xHalfWidth);
axis.visibleRange.max = @(xWidth - xHalfWidth);
} else if (center >= dataSamples) {
axis.visibleRange.min = @(dataSamples - xHalfWidth);
axis.visibleRange.max = @(dataSamples + xHalfWidth);
} else {
// xWith is updated to keep the zoom factor in limits, when (center <= 0) or (center >= dataSamples)
xWidth = max - min;
xHalfWidth = xWidth / 2;
}
};
[SCIUpdateSuspender usingWithSuspendable:sciChartSurface withBlock:^{
[sciChartSurface.xAxes add:xAxis];
[sciChartSurface.yAxes add:yAxis];
[sciChartSurface.renderableSeries add:rSeries];
[SCIAnimations sweepSeries:rSeries duration:0.0 andEasingFunction:[SCICubicEase new]];
}];
dataSeries = [[SCIXyDataSeries alloc] initWithXType:SCIDataType_Int yType:SCIDataType_Short];
// x
xWidth = theFileFormat.mSampleRate * MIN_SECONDS_IN_GRID * 1;
xIndex = 0;
xHalfWidth = xWidth / 2;
xAxis.visibleRange = [[SCIDoubleRange alloc] initWithMin:0.0 max:xWidth];
// y
yAxis.visibleRange = [[SCIDoubleRange alloc] initWithMin:SHRT_MIN max:SHRT_MAX];
[self loadDefaultStyle];
}
- Vicente Broseta asked 4 years ago
- You must login to post comments
Hello Nazar,
Thanks for your response, it seems like a difficult problem to find.
Finally i have solved the problem making a new swift class to manage the chart. This class has the same structure and code and it works fine.
I don’t know if it is possible that the objective-c code compilation is the problem. What do you think about?
- Vicente Broseta answered 4 years ago
- You must login to post comments
Hello Vicente,
Thanks for writing to us. It’s hard to tell what’s wrong. To help you i will need you to provide short sample application, which will reproduce the issue, so we can investigate it further. Thank you for understanding.
Best Regards,
Nazar R.
- Nazar Rudnyk answered 4 years ago
- You must login to post comments
Please login first to submit.