2015-06-25 25 views
6

Ho un oggetto Swift che sto esponendo a JavaScriptCore in questo modo:Perché non posso impostare un elemento del dizionario Swift esposto a JavaScriptCore?

@objc(MyObjectExport) protocol MyObjectExport:JSExport { 
    var name:String {get set} 
    var dict:[String:String] {get set} } 

class MyObject:NSObject,MyObjectExport { 
    var name:String="Name" 
    var dict:[String:String]=["test":"TEST"] } 

Nel contesto Javascript posso tranquillamente ottenere e impostare il 'nome' di proprietà di un'istanza MyObject, ma può ottenere solo, non set, gli elementi del dizionario 'dict'.

Cosa mi manca o si tratta di un bug?

+0

Si dovrebbe archiviare questo come un bug, il bridging _should_ essere implicito. Per ora, prova a usare "NSMutableDictionary" come sostituto. –

+0

Grazie per il suggerimento, ma usando 'NSMutableDictionary' invece non fa differenza – macduff

risposta

0

ECMAScript 5 non supporta lo scripting personalizzato. Esponendo Dizionario di JavaScriptCore, si sarà in grado di fare qualcosa in JavaScriptCore come

MyObjectExport['key'] = value; 

Ma non lavorerà in JavaScriptCore in questa fase.