[AC-5524] Hyperloop NSData question
| GitHub Issue | n/a |
|---|---|
| Type | Bug |
| Priority | n/a |
| Status | Resolved |
| Resolution | Not Our Bug |
| Resolution Date | 2018-01-17T08:41:13.000+0000 |
| Affected Version/s | n/a |
| Fix Version/s | n/a |
| Components | Hyperloop |
| Labels | n/a |
| Reporter | Michael Hay |
| Assignee | Shak Hossain |
| Created | 2018-01-16T19:47:14.000+0000 |
| Updated | 2018-01-17T08:41:14.000+0000 |
Description
The latest intecom module in hyperloop produces this configurations. I cant sent a string to it as its as it seems to require and NS data object and i'm sensing a String. Can i convert it?
Trying:
{{TiIntercom.setDeviceToken('f4cf7dd07dac7a35d6f8479129d9cb05e4dc6a3a087640025121d6dcd76dc8df');
}}
Error:
{{: [ERROR] -[__NSCFString bytes]: unrecognized selector sent to instance 0x1c80ad1a0
: [ERROR] TiIntercom ex: {"line":147,"column":26,"sourceURL":"file:///var/containers/Bundle/Application/E070E5ED-B942-4574-8FB1-B490282A1A82/Buildcloud.app/hyperloop/intercom/intercom.js","description":"-[__NSCFString bytes]: unrecognized selector sent to instance 0x1c80ad1a0","name":"NSInvalidArgumentException","nativeStack":"1 libobjc.A.dylib 0x0000000180580528 objc_exception_throw + 56\134n2 CoreFoundation 0x0000000181347828 + 0\134n3 CoreFoundation 0x000000018133fd10 + 1380\134n4 CoreFoundation 0x0000000181224ecc _CF_forwarding_prep_0 + 92\134n5 Buildcloud 0x0000000100399874 _ZN7plcrash3BIT5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 607308\134n6 Buildcloud 0x000000010039993c _ZN7plcrash3BIT5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 607508\134n7 Buildcloud <\M-b\M^@\M-&>
}}
Form Hyperloop JSON:
{{"setDeviceToken:": {
"arguments": [
{
"encoding": "@",
"name": "deviceToken",
"type": "objc_pointer",
*"value": "NSData *"*
}
],
"encoding": "v24@0:8@16",
"instance": false,
"name": "setDeviceToken",
"returns": {
"encoding": "v",
"type": "void",
"value": "void"
},
"selector": "setDeviceToken:"
},}}
Hello [~hknoechel], please can you help here?!
You need to pass it as NSData, noch as a String, which is no Hyperloop related task but a general native programming one. [Here](https://stackoverflow.com/a/26346543) is an example of converting it from Swift - should be adoptable by Hyperloop. The other way would be to actually subscribe to the native
application: didRegisterForRemoteNotificationsWithDeviceToken:selector that can be accessed from Hyperloop and native modules starting in 7.1.0 and later.