-
-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Crash at BarChartDataSet as! IBarChartDataSet #3917
Comments
Having the same issue wherein after setting the |
apparently you are not passing in a |
After reviewing the demo project to verify that it works and comparing it to my code which doesn't, I think I have an idea as to what's going on. I've instantiated BarChartDataSet as Edit: Just to be clear, forcibly using the intended class initializers (in this case, using values and label as parameter) seems to work just fine. |
I tried your demo, and it's true indeed. @jjatie would you take a look? It smells a bug to Apple, not us. I checked when break at let set = BarChartDataSet(values)
let data = BarChartData(dataSet: set) set is still BarChartDatSet:
but in let set = barData.dataSets[i] as! IBarChartDataSet it's
note the pointer address is still the same, but failed to cast to I cannot step into the function of
I have no idea but when I tried to retype the code, the auto complete gives me: which enlightens me that it might because Swift uses it's
rather than our
But I still don't know why it failed to cast. and more importantly, I cannot call our convenience init() at all, always throw compile errors |
Looks like there are some issues when keeping objc support around. We need to override the initializer in the subclasses, then it works fine. |
@kapisz I reset my branch to 3.2.2 release, and your demo still the same issue. I didn't have an older Xcode on my side, so I don't know if this is introduced with Xcode 10.2 But like what @jjatie said, we can override all super class's designated initializers to make it inherit all superclass's convenient initialziers. This seems never being raised up by anyone, that, the BarChartDataSet overrides one of the designated initializers:
so according to Automatic Initializer Inheritance,
the convenient initializer
is not supposed to be inherited by BarChartDataSet in the first place. So IMO I'm not surprised now it won't work, because BarChartDataSet shouldn't be able to call But I wonder why until now people start complains about this. If this is really a bug of Xcode or the compiler, I think Xcode 10.2.1 just fixed it, and being able to call looking deeper, that we can simply turn So now we able able to call But the cast failure issue I think is apple's bug. I will file a radar https://bugs.swift.org/projects/SR/issues/SR-10558 |
I had to put my thinking cap on and really dig for this one @liuxuan30 , but I do think Xcode broke it rather than fixed it. First and foremost I was wrong, that is, BarChartDataSet(myArrayOfBarChartDataEntries) was never calling |
@kapisz yes, that's why I said the cast failure should be a bug of Apple. but it could take a long time to get it really fixed, so I made the change that you could call
on your side by just adding an argument label "entries". What I mean "but I think Xcode fix it" is that, I don't remember if old Swift allows to automatically omit the argument label if there is only one parameter without @kapisz can you check on your side, if you have old Xcode and say Charts 3.2.2 or even older, that you can actually get a return of |
I see. What I said
seems wrong. 3.2.2 already adopted collection protocol. before 3.2.2 we don't have this initializer at all.
this method is never inherited by BarChartDataSet I suppose. So with #3973 you should be able to call it safely. Use it as a workaround for now. I have filed a bug for swift.org. |
@liuxuan30 This is a known issue 49303574 |
@jjatie good to know. but I kind of oppose we use the 'static func workaround' mentioned in 49303574 now. It's not a small effort to add and later remove it. and I'm kind of disappointed such major issue is released to outside devs... it should be fixed before :( |
* Added delegate callback to detect when panning is finished, to potentially allow users to manually reset the hightlight values once panning is complete * Changed the part of the code where the delegate gets called * Make NSUIAccessibilityElement initializer public. * Add Parameters Section ``` (\n[ ]+)(((/// - parameter \w+:.*\s+)(///((\s+)|( \s+.+\s+)))?)*/// - parameter \w+:.*) ``` ``` $1/// - Parameters:$1$2 ``` * Remove parameter prefix ``` /// - parameter (\w+):(.*)(\s+///(\n))*(\s+) ``` ``` /// - $1:$2$4$5 ``` * Remove property’s `returns` section ``` /// - returns: (.+\s+((override|@IBOutlet|@objc|weak|unowned|lazy|static|class|open|public|private|fileprivate|internal)(\(set\))? )*(var|let)) ``` ``` /// $1 ``` * Add missing `-` ``` /// (note|return|parameters|throws): ``` ``` /// - $1: ``` * Sort sections ``` ((///)[ ]+[^-\n]+(\s+))?(((((/// - Parameters:\s+(/// (( - \w+:)|([^-]{1})).*\s+)+)\s+)|(/// - Returns:.*\s+(/// [^-]{1}.*\s+)*)|(/// - Note:.*\s+(/// [^-]{1}.*\s+)*)|(/// - Throws:.*\s+(/// [^-]{1}.*\s+)*))(///\n\s+)?)+) ``` ``` $1$2$3$15$7$17$13 ``` * Uppercased the section title * fix function groupBars document error * Remove duplicated section * Update ChartViewBase.swift Updated documentation in the code based on feedback * Add missing empty line between Summary and other section manually * fix wrong assignment to axisMaxLabels property * Remove meaningless comment * improvements in barRect height calculation (ChartsOrg#3650) * fixed barRectCaculation * fixed offset calculation * Fix the mess caused by the setting the min&min value of the y-axis by error : Just simply swap their values * Fix the mess caused by the setting the min&min value of the y-axis by error * Revert "Fix the mess caused by the setting the min&min value of the y-axis by error" This reverts commit 526a73a. * Fix the mess caused by the setting the min&min value of the y-axis by error * update offset calculation * update code style * update code style * update offset calculation * keep barRect calculation untouched try to simply the calculation. keep barRect calculation untouched * After the correction of min and max , they should be assigned back to _axisMinimum and _axisMaximum * add demo for bar chart unit test * update unit test * revert last commit * update unit test * make sure max is greater than min & turnoff record mode for barchartest * add new UT and fix some issues. 1. add more bar chart UT 2. code style fix 3. manually add chart.notifyDataSetChanged() - some old UT and new ones forget to call this method, leading the test images to be wrong. Notice: some test images diff shows slight pixel shift, not sure why, but both old and new image seems drawing correctly * update tvOS images * update tolerance to 1% & more swift-y * update tvOS images, removing "Description Label", (not rendered anymore) changing tolerance will trigger "Description Label" detection * update iOS test images, "Description Label" no longer rendered. * fixed offset calculation in some cases. moved those codes into the for loop. because the offset of each bar may be different. (detail in comments) * Update Source/Charts/Renderers/BarChartRenderer.swift Co-Authored-By: potato04 <shiww@outlook.com> * Add missing properties to copy(with:) methods (ChartsOrg#3715) * ChartsOrg#3578 Add missing properties to copy(with:) methods * Add NSCopying conformance * Fix legend offset bug for horizontal bar chart (Fixes ChartsOrg#3301) * Fix applying lineCap value for line chart data sets (Fixes ChartsOrg#3739) DataSets for line chart have lineCap property which is supposed to be applied to the chart line. But it was applied only if dataSet is drawn in linear/stepped mode. This commit makes lineCap work for any existing mode. * Update README.md (ChartsOrg#3737) Replace a confusing sentence with a clear one. Fix grammatical errors. * fix ChartsOrg#3719 * add call chartScaled() after double tap (ChartsOrg#3770) * Remove delegate method call for translation when no translation really occured * Removed use of `values` where appropriate * Fixed `addEntry` implementation * Deprecated direct usage of values * BarLineScatterCandleBubbleRenderer.XBounds conformance to RangeExpression and Sequence Sequence conformance simplifies for-in loops Looking forward to when data types conforming to Collection, RangeExpression conformance by XBounds allows for slicing of the collections further simplifying algorithms on data/datasets. * Draws the line chart the same way regardless of the number of colors for the data set (ChartsOrg#3764) * Multiple colors for valueline (Fixes ChartsOrg#3480) (ChartsOrg#3709) * Multiple colors for valueline (Fixes ChartsOrg#3480) This change adds a flag matchValueLineColorToPieSlice to PieChartDataSet and IPieChartDataSet protocol. When enabled, valuelines will have the same color as slices they attached to. matchValueLineColorToPieSlice is set to false by default, so colors won't be changed in old projects that use Charts. * Changed variable name from matchValueLineColorToPieSlice to valueLineAutoColor * Changed variable name from valueLineAutoColor to useValueColorForLine * Changed variable name from valueLineAutoColor to useValueColorForLine * fix code style fix code style * Changed check for useValueColorForLine with suggested * fix code style * Added name DrawLine: to do{} section * bump version to 3.2.2 * update change log * Renamed `values` to `entries` to reflect the property's type Removed arbitrary setter access to `entries` to encourage use of `Collection` mechanics Added `replaceEntries` * Fixed tests * Create "chartViewDidEndAnimate" callback function in "ChartViewBase" that is called when Animator stops animating * Update protocol function description * Improve HorizontalBarChart offset calculation for negative value labels (Fixes ChartsOrg#3850) * Replace AnyObject with Any This is in line with how Objc interfaces are now imported * Fixed target on NSUIDisplayLink * Removed unnecessary #if statements and unified style to align with Xcode's indentation * Velocity samples calculation (ChartsOrg#3883) * Updated `PieRadarChartViewBase.sampleVelocity(touchLocation:)` algorithm. * Updated `PieRadarChartViewBase.calculateVelocity` algorithm * Updated naming for `_velocitySamples` * A fix for ChartsOrg#3848. Use a stock iterator instead of a custom one. (ChartsOrg#3891) * Migrating to built-in algorithms (ChartsOrg#3892) * Align `ChartLimit.LabelPosition` naming with `UIRectCorner` (ChartsOrg#3846) * Align `ChartLimit.LabelPosition` naming with `UIRectCorner` * Fixed Demos * fix indent after replacing if with guard * reverted mistaken changes * Removed unused #if statements * add animator reference to animatorDidStop ChartViewBase delegate callback. * Minor updates for Swift 5 (ChartsOrg#3874) * Minor updates for Swift 5 Need FBSnapshotTestCase to be updated * Updated testing Framework for Swift 5 bumped minimum deployment version to 8.4 * Bumped Travis Xcode version * Fix test failures. add a new extension to only use 64bit arch. This is the companion commit that only has code change regards fixing test failures. * delete unused test images with specific screen size. this is a companion commit to only have deleted files * rename the in-use test images. this is a companion commit to only have renamed files. * change image diff to 0.001 tolerance make clipValuesToContentEnabled to true to fix BarTests:testPositiveValuesWithCustomAxisMaximum() failure * 1. merge master to fix xBounds iterator() to match the behavior of `stride(from: _xBounds.min, through: _xBounds.range + _xBounds.min, by: 1)` this fix issues from ChartsOrg@2a1ecb4 2. revert clipValuesToContentEnabled to false by default. but enable it for bar chart test - testPositiveValuesWithCustomAxisMaximum() 3. update tvOS test image for testPositiveValuesWithCustomAxisMaximum. After changing tolerance to 0.001, it fails while the same iOS test pass. I looked into the image diff, it shows the intersect of bar top edge and axis line at value 50 has diff, but I suppose the image is the same. safe to merge. * fix ChartsOrg#3860. maxHeight didn't count the last label * Reassess convenience initializers (ChartsOrg#3862) * Reassess convenience initializers The only data required to initialize an entry is an x and y value (or y in the case of Pie and Radar). All other data can easily be updated by initializing and assigning properties on the entry. Therefor, those initializers should be the ones marked as convenience. Made initializer declarations consistent. * Modernize BarChartDataEntry internal calculations * Style updated for PR * Fix horizontal bar chart not drawing values and add unit tests (ChartsOrg#3906) * fix horizontal bar chart drawValues not correctly drawing and add testNotDrawValueAboveBars UT * add unit tests for horizontal bar chart, including default tests and drawValues and drawValuesAboveBars default data entries included positive and negative values * add tvOS test images * add stacked bar tests for bar chart unit tests * fix typo * change to guard statement for shouldDrawValues * update test images to match master branch * Data as any (ChartsOrg#3863) * `ChartEntry.data` is now of type `Any` There is no need to restrict `ChartEntry.data` to `AnyObject`. This PR loosens that restriction. As a result we cannot compare `data`, though this should never have been the case in the first place. * Updated `ChartDataEntry` initializers to accept `Any` for `data` * Updated test * bump version to 3.3 * update change log * update gemfile * correct 3.3 to 3.3.0. * For ChartsOrg#3917. make init(label: String?) convenient initializer (ChartsOrg#3973) * fix ChartsOrg#3917. make `init(label: String?)` to be a convenient init to enable auto inheritance. * add UT for default dataSet label
* Avoid passing NaN to CoreGraphics API (Fixes ChartsOrg#1626) * Added delegate callback to detect when panning is finished, to potentially allow users to manually reset the hightlight values once panning is complete * Changed the part of the code where the delegate gets called * Make NSUIAccessibilityElement initializer public. * Add Parameters Section ``` (\n[ ]+)(((/// - parameter \w+:.*\s+)(///((\s+)|( \s+.+\s+)))?)*/// - parameter \w+:.*) ``` ``` $1/// - Parameters:$1$2 ``` * Remove parameter prefix ``` /// - parameter (\w+):(.*)(\s+///(\n))*(\s+) ``` ``` /// - $1:$2$4$5 ``` * Remove property’s `returns` section ``` /// - returns: (.+\s+((override|@IBOutlet|@objc|weak|unowned|lazy|static|class|open|public|private|fileprivate|internal)(\(set\))? )*(var|let)) ``` ``` /// $1 ``` * Add missing `-` ``` /// (note|return|parameters|throws): ``` ``` /// - $1: ``` * Sort sections ``` ((///)[ ]+[^-\n]+(\s+))?(((((/// - Parameters:\s+(/// (( - \w+:)|([^-]{1})).*\s+)+)\s+)|(/// - Returns:.*\s+(/// [^-]{1}.*\s+)*)|(/// - Note:.*\s+(/// [^-]{1}.*\s+)*)|(/// - Throws:.*\s+(/// [^-]{1}.*\s+)*))(///\n\s+)?)+) ``` ``` $1$2$3$15$7$17$13 ``` * Uppercased the section title * fix function groupBars document error * Remove duplicated section * Update ChartViewBase.swift Updated documentation in the code based on feedback * Add missing empty line between Summary and other section manually * fix wrong assignment to axisMaxLabels property * Remove meaningless comment * improvements in barRect height calculation (ChartsOrg#3650) * fixed barRectCaculation * fixed offset calculation * Fix the mess caused by the setting the min&min value of the y-axis by error : Just simply swap their values * Fix the mess caused by the setting the min&min value of the y-axis by error * Revert "Fix the mess caused by the setting the min&min value of the y-axis by error" This reverts commit 526a73a. * Fix the mess caused by the setting the min&min value of the y-axis by error * update offset calculation * update code style * update code style * update offset calculation * keep barRect calculation untouched try to simply the calculation. keep barRect calculation untouched * After the correction of min and max , they should be assigned back to _axisMinimum and _axisMaximum * add demo for bar chart unit test * update unit test * revert last commit * update unit test * make sure max is greater than min & turnoff record mode for barchartest * add new UT and fix some issues. 1. add more bar chart UT 2. code style fix 3. manually add chart.notifyDataSetChanged() - some old UT and new ones forget to call this method, leading the test images to be wrong. Notice: some test images diff shows slight pixel shift, not sure why, but both old and new image seems drawing correctly * update tvOS images * update tolerance to 1% & more swift-y * update tvOS images, removing "Description Label", (not rendered anymore) changing tolerance will trigger "Description Label" detection * update iOS test images, "Description Label" no longer rendered. * fixed offset calculation in some cases. moved those codes into the for loop. because the offset of each bar may be different. (detail in comments) * Update Source/Charts/Renderers/BarChartRenderer.swift Co-Authored-By: potato04 <shiww@outlook.com> * Add missing properties to copy(with:) methods (ChartsOrg#3715) * ChartsOrg#3578 Add missing properties to copy(with:) methods * Add NSCopying conformance * Fix legend offset bug for horizontal bar chart (Fixes ChartsOrg#3301) * Fix applying lineCap value for line chart data sets (Fixes ChartsOrg#3739) DataSets for line chart have lineCap property which is supposed to be applied to the chart line. But it was applied only if dataSet is drawn in linear/stepped mode. This commit makes lineCap work for any existing mode. * Update README.md (ChartsOrg#3737) Replace a confusing sentence with a clear one. Fix grammatical errors. * fix ChartsOrg#3719 * add call chartScaled() after double tap (ChartsOrg#3770) * Remove delegate method call for translation when no translation really occured * Removed use of `values` where appropriate * Fixed `addEntry` implementation * Deprecated direct usage of values * BarLineScatterCandleBubbleRenderer.XBounds conformance to RangeExpression and Sequence Sequence conformance simplifies for-in loops Looking forward to when data types conforming to Collection, RangeExpression conformance by XBounds allows for slicing of the collections further simplifying algorithms on data/datasets. * Draws the line chart the same way regardless of the number of colors for the data set (ChartsOrg#3764) * Multiple colors for valueline (Fixes ChartsOrg#3480) (ChartsOrg#3709) * Multiple colors for valueline (Fixes ChartsOrg#3480) This change adds a flag matchValueLineColorToPieSlice to PieChartDataSet and IPieChartDataSet protocol. When enabled, valuelines will have the same color as slices they attached to. matchValueLineColorToPieSlice is set to false by default, so colors won't be changed in old projects that use Charts. * Changed variable name from matchValueLineColorToPieSlice to valueLineAutoColor * Changed variable name from valueLineAutoColor to useValueColorForLine * Changed variable name from valueLineAutoColor to useValueColorForLine * fix code style fix code style * Changed check for useValueColorForLine with suggested * fix code style * Added name DrawLine: to do{} section * bump version to 3.2.2 * update change log * Renamed `values` to `entries` to reflect the property's type Removed arbitrary setter access to `entries` to encourage use of `Collection` mechanics Added `replaceEntries` * Fixed tests * Create "chartViewDidEndAnimate" callback function in "ChartViewBase" that is called when Animator stops animating * Update protocol function description * Improve HorizontalBarChart offset calculation for negative value labels (Fixes ChartsOrg#3850) * Replace AnyObject with Any This is in line with how Objc interfaces are now imported * Fixed target on NSUIDisplayLink * Removed unnecessary #if statements and unified style to align with Xcode's indentation * Velocity samples calculation (ChartsOrg#3883) * Updated `PieRadarChartViewBase.sampleVelocity(touchLocation:)` algorithm. * Updated `PieRadarChartViewBase.calculateVelocity` algorithm * Updated naming for `_velocitySamples` * A fix for ChartsOrg#3848. Use a stock iterator instead of a custom one. (ChartsOrg#3891) * Migrating to built-in algorithms (ChartsOrg#3892) * Align `ChartLimit.LabelPosition` naming with `UIRectCorner` (ChartsOrg#3846) * Align `ChartLimit.LabelPosition` naming with `UIRectCorner` * Fixed Demos * fix indent after replacing if with guard * reverted mistaken changes * Removed unused #if statements * add animator reference to animatorDidStop ChartViewBase delegate callback. * Minor updates for Swift 5 (ChartsOrg#3874) * Minor updates for Swift 5 Need FBSnapshotTestCase to be updated * Updated testing Framework for Swift 5 bumped minimum deployment version to 8.4 * Bumped Travis Xcode version * Fix test failures. add a new extension to only use 64bit arch. This is the companion commit that only has code change regards fixing test failures. * delete unused test images with specific screen size. this is a companion commit to only have deleted files * rename the in-use test images. this is a companion commit to only have renamed files. * change image diff to 0.001 tolerance make clipValuesToContentEnabled to true to fix BarTests:testPositiveValuesWithCustomAxisMaximum() failure * 1. merge master to fix xBounds iterator() to match the behavior of `stride(from: _xBounds.min, through: _xBounds.range + _xBounds.min, by: 1)` this fix issues from ChartsOrg@2a1ecb4 2. revert clipValuesToContentEnabled to false by default. but enable it for bar chart test - testPositiveValuesWithCustomAxisMaximum() 3. update tvOS test image for testPositiveValuesWithCustomAxisMaximum. After changing tolerance to 0.001, it fails while the same iOS test pass. I looked into the image diff, it shows the intersect of bar top edge and axis line at value 50 has diff, but I suppose the image is the same. safe to merge. * fix ChartsOrg#3860. maxHeight didn't count the last label * Reassess convenience initializers (ChartsOrg#3862) * Reassess convenience initializers The only data required to initialize an entry is an x and y value (or y in the case of Pie and Radar). All other data can easily be updated by initializing and assigning properties on the entry. Therefor, those initializers should be the ones marked as convenience. Made initializer declarations consistent. * Modernize BarChartDataEntry internal calculations * Style updated for PR * Fix horizontal bar chart not drawing values and add unit tests (ChartsOrg#3906) * fix horizontal bar chart drawValues not correctly drawing and add testNotDrawValueAboveBars UT * add unit tests for horizontal bar chart, including default tests and drawValues and drawValuesAboveBars default data entries included positive and negative values * add tvOS test images * add stacked bar tests for bar chart unit tests * fix typo * change to guard statement for shouldDrawValues * update test images to match master branch * Data as any (ChartsOrg#3863) * `ChartEntry.data` is now of type `Any` There is no need to restrict `ChartEntry.data` to `AnyObject`. This PR loosens that restriction. As a result we cannot compare `data`, though this should never have been the case in the first place. * Updated `ChartDataEntry` initializers to accept `Any` for `data` * Updated test * bump version to 3.3 * update change log * update gemfile * correct 3.3 to 3.3.0. * For ChartsOrg#3917. make init(label: String?) convenient initializer (ChartsOrg#3973) * fix ChartsOrg#3917. make `init(label: String?)` to be a convenient init to enable auto inheritance. * add UT for default dataSet label * Added a safety check before an unsafe array operation * Update Info.plist * Update License Changed year in license file * fixed stacked chart bug when there are different stacks on columns. (ChartsOrg#4029) fix ChartsOrg#3659 * fixed stacked chart bug when there are different stacks on columns. * added empty array check
* Avoid passing NaN to CoreGraphics API (Fixes ChartsOrg#1626) * Added delegate callback to detect when panning is finished, to potentially allow users to manually reset the hightlight values once panning is complete * Changed the part of the code where the delegate gets called * Make NSUIAccessibilityElement initializer public. * Add Parameters Section ``` (\n[ ]+)(((/// - parameter \w+:.*\s+)(///((\s+)|( \s+.+\s+)))?)*/// - parameter \w+:.*) ``` ``` $1/// - Parameters:$1$2 ``` * Remove parameter prefix ``` /// - parameter (\w+):(.*)(\s+///(\n))*(\s+) ``` ``` /// - $1:$2$4$5 ``` * Remove property’s `returns` section ``` /// - returns: (.+\s+((override|@IBOutlet|@objc|weak|unowned|lazy|static|class|open|public|private|fileprivate|internal)(\(set\))? )*(var|let)) ``` ``` /// $1 ``` * Add missing `-` ``` /// (note|return|parameters|throws): ``` ``` /// - $1: ``` * Sort sections ``` ((///)[ ]+[^-\n]+(\s+))?(((((/// - Parameters:\s+(/// (( - \w+:)|([^-]{1})).*\s+)+)\s+)|(/// - Returns:.*\s+(/// [^-]{1}.*\s+)*)|(/// - Note:.*\s+(/// [^-]{1}.*\s+)*)|(/// - Throws:.*\s+(/// [^-]{1}.*\s+)*))(///\n\s+)?)+) ``` ``` $1$2$3$15$7$17$13 ``` * Uppercased the section title * fix function groupBars document error * Remove duplicated section * Update ChartViewBase.swift Updated documentation in the code based on feedback * Add missing empty line between Summary and other section manually * fix wrong assignment to axisMaxLabels property * Remove meaningless comment * improvements in barRect height calculation (ChartsOrg#3650) * fixed barRectCaculation * fixed offset calculation * Fix the mess caused by the setting the min&min value of the y-axis by error : Just simply swap their values * Fix the mess caused by the setting the min&min value of the y-axis by error * Revert "Fix the mess caused by the setting the min&min value of the y-axis by error" This reverts commit 526a73a. * Fix the mess caused by the setting the min&min value of the y-axis by error * update offset calculation * update code style * update code style * update offset calculation * keep barRect calculation untouched try to simply the calculation. keep barRect calculation untouched * After the correction of min and max , they should be assigned back to _axisMinimum and _axisMaximum * add demo for bar chart unit test * update unit test * revert last commit * update unit test * make sure max is greater than min & turnoff record mode for barchartest * add new UT and fix some issues. 1. add more bar chart UT 2. code style fix 3. manually add chart.notifyDataSetChanged() - some old UT and new ones forget to call this method, leading the test images to be wrong. Notice: some test images diff shows slight pixel shift, not sure why, but both old and new image seems drawing correctly * update tvOS images * update tolerance to 1% & more swift-y * update tvOS images, removing "Description Label", (not rendered anymore) changing tolerance will trigger "Description Label" detection * update iOS test images, "Description Label" no longer rendered. * fixed offset calculation in some cases. moved those codes into the for loop. because the offset of each bar may be different. (detail in comments) * Update Source/Charts/Renderers/BarChartRenderer.swift Co-Authored-By: potato04 <shiww@outlook.com> * Add missing properties to copy(with:) methods (ChartsOrg#3715) * ChartsOrg#3578 Add missing properties to copy(with:) methods * Add NSCopying conformance * Fix legend offset bug for horizontal bar chart (Fixes ChartsOrg#3301) * Fix applying lineCap value for line chart data sets (Fixes ChartsOrg#3739) DataSets for line chart have lineCap property which is supposed to be applied to the chart line. But it was applied only if dataSet is drawn in linear/stepped mode. This commit makes lineCap work for any existing mode. * Update README.md (ChartsOrg#3737) Replace a confusing sentence with a clear one. Fix grammatical errors. * fix ChartsOrg#3719 * add call chartScaled() after double tap (ChartsOrg#3770) * Remove delegate method call for translation when no translation really occured * Removed use of `values` where appropriate * Fixed `addEntry` implementation * Deprecated direct usage of values * BarLineScatterCandleBubbleRenderer.XBounds conformance to RangeExpression and Sequence Sequence conformance simplifies for-in loops Looking forward to when data types conforming to Collection, RangeExpression conformance by XBounds allows for slicing of the collections further simplifying algorithms on data/datasets. * Draws the line chart the same way regardless of the number of colors for the data set (ChartsOrg#3764) * Multiple colors for valueline (Fixes ChartsOrg#3480) (ChartsOrg#3709) * Multiple colors for valueline (Fixes ChartsOrg#3480) This change adds a flag matchValueLineColorToPieSlice to PieChartDataSet and IPieChartDataSet protocol. When enabled, valuelines will have the same color as slices they attached to. matchValueLineColorToPieSlice is set to false by default, so colors won't be changed in old projects that use Charts. * Changed variable name from matchValueLineColorToPieSlice to valueLineAutoColor * Changed variable name from valueLineAutoColor to useValueColorForLine * Changed variable name from valueLineAutoColor to useValueColorForLine * fix code style fix code style * Changed check for useValueColorForLine with suggested * fix code style * Added name DrawLine: to do{} section * bump version to 3.2.2 * update change log * Renamed `values` to `entries` to reflect the property's type Removed arbitrary setter access to `entries` to encourage use of `Collection` mechanics Added `replaceEntries` * Fixed tests * Create "chartViewDidEndAnimate" callback function in "ChartViewBase" that is called when Animator stops animating * Update protocol function description * Improve HorizontalBarChart offset calculation for negative value labels (Fixes ChartsOrg#3850) * Replace AnyObject with Any This is in line with how Objc interfaces are now imported * Fixed target on NSUIDisplayLink * Removed unnecessary #if statements and unified style to align with Xcode's indentation * Velocity samples calculation (ChartsOrg#3883) * Updated `PieRadarChartViewBase.sampleVelocity(touchLocation:)` algorithm. * Updated `PieRadarChartViewBase.calculateVelocity` algorithm * Updated naming for `_velocitySamples` * A fix for ChartsOrg#3848. Use a stock iterator instead of a custom one. (ChartsOrg#3891) * Migrating to built-in algorithms (ChartsOrg#3892) * Align `ChartLimit.LabelPosition` naming with `UIRectCorner` (ChartsOrg#3846) * Align `ChartLimit.LabelPosition` naming with `UIRectCorner` * Fixed Demos * fix indent after replacing if with guard * reverted mistaken changes * Removed unused #if statements * add animator reference to animatorDidStop ChartViewBase delegate callback. * Minor updates for Swift 5 (ChartsOrg#3874) * Minor updates for Swift 5 Need FBSnapshotTestCase to be updated * Updated testing Framework for Swift 5 bumped minimum deployment version to 8.4 * Bumped Travis Xcode version * Fix test failures. add a new extension to only use 64bit arch. This is the companion commit that only has code change regards fixing test failures. * delete unused test images with specific screen size. this is a companion commit to only have deleted files * rename the in-use test images. this is a companion commit to only have renamed files. * change image diff to 0.001 tolerance make clipValuesToContentEnabled to true to fix BarTests:testPositiveValuesWithCustomAxisMaximum() failure * 1. merge master to fix xBounds iterator() to match the behavior of `stride(from: _xBounds.min, through: _xBounds.range + _xBounds.min, by: 1)` this fix issues from ChartsOrg@2a1ecb4 2. revert clipValuesToContentEnabled to false by default. but enable it for bar chart test - testPositiveValuesWithCustomAxisMaximum() 3. update tvOS test image for testPositiveValuesWithCustomAxisMaximum. After changing tolerance to 0.001, it fails while the same iOS test pass. I looked into the image diff, it shows the intersect of bar top edge and axis line at value 50 has diff, but I suppose the image is the same. safe to merge. * fix ChartsOrg#3860. maxHeight didn't count the last label * Reassess convenience initializers (ChartsOrg#3862) * Reassess convenience initializers The only data required to initialize an entry is an x and y value (or y in the case of Pie and Radar). All other data can easily be updated by initializing and assigning properties on the entry. Therefor, those initializers should be the ones marked as convenience. Made initializer declarations consistent. * Modernize BarChartDataEntry internal calculations * Style updated for PR * Fix horizontal bar chart not drawing values and add unit tests (ChartsOrg#3906) * fix horizontal bar chart drawValues not correctly drawing and add testNotDrawValueAboveBars UT * add unit tests for horizontal bar chart, including default tests and drawValues and drawValuesAboveBars default data entries included positive and negative values * add tvOS test images * add stacked bar tests for bar chart unit tests * fix typo * change to guard statement for shouldDrawValues * update test images to match master branch * Data as any (ChartsOrg#3863) * `ChartEntry.data` is now of type `Any` There is no need to restrict `ChartEntry.data` to `AnyObject`. This PR loosens that restriction. As a result we cannot compare `data`, though this should never have been the case in the first place. * Updated `ChartDataEntry` initializers to accept `Any` for `data` * Updated test * bump version to 3.3 * update change log * update gemfile * correct 3.3 to 3.3.0. * For ChartsOrg#3917. make init(label: String?) convenient initializer (ChartsOrg#3973) * fix ChartsOrg#3917. make `init(label: String?)` to be a convenient init to enable auto inheritance. * add UT for default dataSet label * fix ChartsOrg#3975. if we disable highlight for pie chart data set, we still need to render without a shift. * Added a safety check before an unsafe array operation * Update Info.plist * Update License Changed year in license file * fixed stacked chart bug when there are different stacks on columns. (ChartsOrg#4029) fix ChartsOrg#3659 * fixed stacked chart bug when there are different stacks on columns. * added empty array check * fix ChartsOrg#4093, also close ChartsOrg#3960 1. change XBounds iterator to use self.min + self.range rather than self.x 2. align drawLinear, drawCubicBezier to new XBounds iterator. 3. fix unexpected dash line during linear animation due to reading the next entry point * Fix Swift Package Manager compile issue Signed-off-by: Ryne Cheow <rynecheow@gmail.com> * Unspecify library type Signed-off-by: Ryne Cheow <rynecheow@gmail.com> * Fix gitignore to ignore .swiftpm as a directory Signed-off-by: Ryne Cheow <rynecheow@gmail.com> * Apply Xcode11 changes automatic remove warnings detected by Xcode11 * bump to iPhone 8 as iPhone 7 has been dropped out * bump to test framework to 6.1 * chart types that are not affected by formatter change * tests affected by formatter change of `minimumIntegerDigits` from 0 to 1 * regenerate bar chart tests * rebuild tvOS test images * Fixes ChartsOrg#4099: Line renderer did not render lines if their coordinates fell outside of the viewport. (ChartsOrg#4100) * Fixed ChartsOrg#4099: Line renderer did not render lines if they coordinates fell outside of the viewport, even though they might intersect the viewport. * Updated inline documentation. * Implemented code review feedback and removed unnecessary checks for performance reasons. * Simplified and clarified the linear function to check for collisions with the left, top and bottom edges of the view port, and commented out the unecessary logic that checks for collision with the right edge of the view port. * Updated in-line documentation. * Update ViewPortHandler.swift add a check for vertical line and a few comments change * bump to 3.4.0 * fix change log format * fix pod build and update gems * introduce gracefully degrading abstractions for dark mode for ios and… (ChartsOrg#4171) * introduce gracefully degrading abstractions for dark mode for ios and macos and use them to draw text * it's .labelColor not .label on NSColor
…hartsOrg#3973) * fix ChartsOrg#3917. make `init(label: String?)` to be a convenient init to enable auto inheritance. * add UT for default dataSet label
What did you do?
Create BarChartData with BarChartDataSet with BarChartDataEntry.
What did you expect to happen?
See bar chart.
What happened instead?
App crashed.
"Could not cast value of type 'Charts.ChartDataSet' (0x108ede670) to 'Charts.IBarChartDataSet' (0x108e8f868)."
BarChartDataSet is IBarChartDataSet.
Before update to xCode 10.2 it works.
Charts Environment
Charts version/Branch/Commit Number: 3.2.2
Xcode version: 10.2
Swift version: 4
Platform(s) running Charts: iOS 12.2
macOS version running Xcode: 10.14.4
Demo Project
https://github.com/anekk/ChartsIssue.git
The text was updated successfully, but these errors were encountered: