ProgressNS / nativescript-ui-feedback

This repository is used for customer feedback regarding Telerik UI for NativeScript. The issues system here is used by customers who want to submit their feature requests or vote for existing ones.
Other
115 stars 21 forks source link

[iOS] RLV with Grouping and Sorting functions does not work on iOS 13.4 #1374

Open shiv19 opened 4 years ago

shiv19 commented 4 years ago

The crash is due to the conflict between RLV's native class called TKDataSource and a newly added TKDataSource class in 13.4, To resolve this, I've renamed the TKDataSource class to RLVTKDataSource in this PR.

https://github.com/NativeScript/nativescript-ui-listview/pull/276

marcelomiranda90 commented 4 years ago

Hello, i have the same problem. Thanks!

ishiharas commented 4 years ago

Hello, we have the same problem at our side. It appears, while using radlistview with a sorting/grouping function and only on iOS 13.4.

datanotion commented 4 years ago

Hey @shiv19 is there any release status on this yet my friend? More of our customers are upgrading iOS for 13.4.x and it's crashing the app for all of them - might there be a hotfix available? Thank you.

shiv19 commented 4 years ago

My PR with the fix was already merged. But it is still not released I guess

shiv19 commented 4 years ago

Try this @datanotion nativescript-ui-listview-8.0.2.tgz.zip

extract the zip file, and run npm i /path to plugin/

datanotion commented 4 years ago

Thank you @shiv19 we were able to get things rolling and are waiting on Apple now. Much appreciated!

ishiharas commented 4 years ago

@datanotion and @shiv19 We did an update to tns-core-modules 6.5.0 (or maybe 6.5.1), the most recent version and also updated nativescript-ui-listview. This seems to have fixed the various iOS 13.4.1 crashes our customers and testers experienced.

Ziggymusician commented 4 years ago

Hi I have the same issue here using

Nativescript Shared Project (with Angular)... App just closes/shuts down when using [groupingFunction] on RadListView but when I remove it, it works (without grouping of cause). This is only on iOS, Android is fine. Anyone with a solution because I'm stuck here, my app uses a lot of grouped list. So it's hard to continue while I have this issue.

jamescodesthings commented 3 years ago

+1 Same issue on ios 14, with @nativescript/core@7.0.12, nativescript-ui-listview@9.0.4 and @nativescript/ios@7.0.4.

Stacktrace:

CONSOLE LOG: Application:ERROR *** -[__NSDictionaryM setObject:forKeyedSubscript:]: key cannot be nil
Stacktrace: Error: *** -[__NSDictionaryM setObject:forKeyedSubscript:]: key cannot be nil
at TKListViewDataSourceImpl1.push.../node_modules/nativescript-ui-listview/ui-listview.js.TKListViewDataSourceImpl.initDataOperationsSource (file: node_modules/nativescript-ui-listview/ui-listview.ios.js:554:0)
at Function.push.../node_modules/nativescript-ui-listview/ui-listview.js.TKListViewDataSourceImpl.initWithOwner (file: node_modules/nativescript-ui-listview/ui-listview.ios.js:528:0)
at RadListView.reloadDataSource (file: node_modules/nativescript-ui-listview/ui-listview.ios.js:873:0)
at RadListView.refresh (file: node_modules/nativescript-ui-listview/ui-listview.ios.js:1548:0)
at RadListView.updateHeaderFooter (file: node_modules/nativescript-ui-listview/ui-listview.ios.js:1005:0)
at RadListView.onMeasure (file: node_modules/nativescript-ui-listview/ui-listview.ios.js:1316:0)
at RadListView.measure (file: node_modules/@nativescript/core/ui/core/view/index.ios.js:50:0)
at Function.measureChild (file: node_modules/@nativescript/core/ui/core/view/view-helper/view-helper-common.js:24:0)
at Function.measureChild (file: node_modules/@nativescript/core/ui/core/view/view-common.js:675:25)
at MeasureHelper.measureChildFixedCol<…>
***** Fatal JavaScript exception - application has been terminated. *****
NativeScript encountered a fatal error: Uncaught Error: *** -[__NSDictionaryM setObject:forKeyedSubscript:]: key cannot be nil
at
push.../node_modules/nativescript-ui-listview/ui-listview.js.TKListViewDataSourceImpl.initDataOperationsSource(file: node_modules/nativescript-ui-listview/ui-listview.ios.js:554:0)
at push.../node_modules/nativescript-ui-listview/ui-listview.js.TKListViewDataSourceImpl.initWithOwner(file: node_modules/nativescript-ui-listview/ui-listview.ios.js:528:0)
at reloadDataSource(file: node_modules/nativescript-ui-listview/ui-listview.ios.js:873:0)
at refresh(file: node_modules/nativescript-ui-listview/ui-listview.ios.js:1548:0)
at updateHeaderFooter(file: node_modules/nativescript-ui-listview/ui-listview.ios.js:1005:0)
at onMeasure(file: node_modules/nativescript-ui-listview/ui-listview.ios.js:1316:0)
at measure(file: node_modules/@nativescript/core/ui/core/view/index.ios.js:50:0)
at measureChild(file: node_modules/@nativescript/core/ui/core/view/view-helper/view-helper-common.js:24:0)
at measureChild(file: node_modules/@nativescript/core/ui/core/view/view-common.js:675:25)
at measureChildFixedColumnsAndRows(file: node_modules/@nativescript/core/ui/layouts/grid-layout/index.ios.js:736:28)
at measure(file: node_modules/@nativescript/core/ui/layouts/grid-layout/index.ios.js:586:0)
at onMeasure(file: node_modules/@nativescript/core/ui/layouts/grid-layout/index.ios.js:110:0)
at measure(file: node_modules/@nativescript/core/ui/core/view/index.ios.js:50:0)
at measureChild(file: node_modules/@nativescript/core/ui/core/view/view-helper/view-helper-common.js:24:0<…
jogotronic commented 3 years ago

Hi there, I got a similar error. As soon as I assign a grouping function to the RadListView on iOS the app crashes. Only on iOS!

CONSOLE ERROR: Error: Failed to apply property [item-selected-background-color] with value [rgba(48, 188, 255, 0.15)] to RadListView(68). Error: -[TKDataSourceGroupDescriptor copyWithZone:]: unrecognized selector sent to instance 0x60000308f520

at TKListViewDataSourceImpl1.TKListViewDataSourceImpl.initDataOperationsSource (file:///app/vendor.js:91091:29) at Function.TKListViewDataSourceImpl.initWithOwner (file:///app/vendor.js:91058:16) at RadListView.reloadDataSource (file: src/ui-listview.ios.ts:982:74) at RadListView.refresh (file: src/ui-listview.ios.ts:1758:17) at RadListView.onItemSelectedBackgroundColorChanged (file: src/ui-listview.ios.ts:1307:13) at RadListView.onItemSelectedBackgroundColorPropertyChanged (file: src/ui-listview.common.ts:917:13) at valueChanged (file: src/ui-listview.common.ts:535:23) at RadListView.Property.set [as itemSelectedBackgroundColor] (file: src/packages/core/ui/core/properties/index.ts:261:6) at CssState.setPropertyValues (file: src/packages/core/ui/styling/style-scope.ts:616:5) at file:///app/vendor.js:4821<…> Fatal JavaScript exception - application has been terminated. NativeScript encountered a fatal error: Uncaught Error: -[TKDataSourceGroupDescriptor copyWithZone:]: unrecognized selector sent to instance 0x60000308f980 at TKListViewDataSourceImpl.initDataOperationsSource(file:///app/vendor.js:91091:29) at TKListViewDataSourceImpl.initWithOwner(file:///app/vendor.js:91058:16) at reloadDataSource(file: src/ui-listview.ios.ts:982:74) at refresh(file: src/ui-listview.ios.ts:1758:17) at onLoaded(file: src/ui-listview.ios.ts:1552:17) at (file: src/packages/core/ui/core/view-base/index.ts:504:67) at callFunctionWithSuper(file: src/packages/core/ui/core/view-base/index.ts:497:2) at callLoaded(file: src/packages/core/ui/core/view-base/index.ts:504:7) at loadView(file: src/packages/core/ui/core/view-base/index.ts:682:8) at (file: src/packages/core/ui/core/view-base/index.ts:407:8) at eachChildView(file: src/packages/core/ui/layouts/layout-base-common.ts:125:18) at eachChild(file: src/packages/core/ui/core/view/view-common.ts:868:7) at onLoaded(file: src/packages/core/ui/core/view-base/index.ts:406:7) at (file: src/packages/core/ui/core/view-base/index.ts:504:67) at callFunctionWithSuper(file: src/packages/core/ui/core/view-base/index.ts:497:2) at callLoaded(file: src/packages/core/ui/core/view-base/index.ts:504:7) at loadView(file: src/packages/core/ui/core/view-base/index.ts:682:8) at <…>

Here are my package.json dependencies: "dependencies": { "@nativescript-community/ui-pager": "^13.0.3", "@nativescript/core": "7.1.3", "@nativescript/firebase": "^11.0.0", "@nativescript/localize": "^5.0.2", "@nativescript/theme": "^2.3.3", "@triniwiz/nativescript-toasty": "^4.0.4", "@vue/devtools": "^5.3.3", "axios": "^0.20.0", "nativescript-cfalert-dialog": "^1.0.15", "nativescript-socketio": "^3.3.1", "nativescript-ui-listview": "^9.1.0", "nativescript-vue": "^2.8.3", "nativescript-vue-devtools": "^1.4.0", "vuex": "^3.5.1" }

testing on Simulator and Device with iOS 14. Any tips on how to get grouping o work on iOS are very much appreciated.

SingleMalted commented 3 years ago

Hey @jogotronic did you ever find a fix for your RLV grouping error?

markusFHGR commented 3 years ago

Hey @jogotronic did you ever find a fix for your RLV grouping error?

Nope, I ended up grouping, sorting and filtering the data set on my own. RadListView is very buggy and I can't recommend using it. Most issues I had so far with Nativescript came from that component.

Ziggymusician commented 3 years ago

Hi I have the same issue here using

* @nativescript/core@7.0.0

* nativescript-ui-listview@9.0.2

Nativescript Shared Project (with Angular)... App just closes/shuts down when using [groupingFunction] on RadListView but when I remove it, it works (without grouping of cause). This is only on iOS, Android is fine. Anyone with a solution because I'm stuck here, my app uses a lot of grouped list. So it's hard to continue while I have this issue.

For me the issue was my [items] list data type. The old version of the plugin didn't care if I used an array or ObservableArray... So it worked with just an array. But this version an array doesn't work for iOS, so had to convert my array to ObservableArray and it worked on iOS it didn't crush. So maybe try that if your current [items] is not an ObservableArray.

this.list = new ObservableArray(this.list);

datanotion commented 3 years ago

Hey @shiv19 - funny, almost exactly a year later and I'm back to this same thread but for RLV v9 😄 LOL - it seems to suffer from the same issue as the v8 version did. Is there another magical patch you have available so we can group again in NS7/8?

Thanks buddy