2014-09-18 2 views
0

Мой вопрос должен быть достаточно простой, чтобы ответить, но я не могу найти что-нибудь в Apple's documentationPass массив/объект от Javascript для Objective-C

С моей JS код, который я звоню функцию Objective-C с аргументом массива. Например .:

ObjC.someFunction_([1,2,3]); 

Сейчас в Objective-C, мы имеем:

- (void)someFunction:(WebScriptObject*)arr 
{ 

} 

В компании Apple предлагает. (Если это была простая строка, то это совершенно другая - и намного более простая - история).

Вопрос: КАК я преобразовываю этот объект WebScriptObject в NSArray?

ответ

0

Просто подумал, что обходной путь, который отлично работает (хотя это все еще обходной путь):

В JS:

ObjC.someFunction_(JSON.stringify([1,2,3])); 

В Objective-C:

- (void)someFunction:(NSString*)arrStr 
{ 
    NSArray* arr = [NSJSONSerialization JSONObjectWithData:[arrStr dataUsingEncoding:NSUTF8StringEncoding] 
                options:kNilOptions 
                error:nil]; 
} 

В sch ematic Диаграмма:

  • Мусор -> Объект для Json -> Objective-C -> Json к объекту

P.S. Я уверен, что должны быть более элегантные подходы (через едва документированный JavaScriptCore, возможно?), Но этот все еще делает трюк! ;-)

Смежные вопросы