[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.