2014-10-15 2 views
2

В настоящее время мы передаем данные из ObjC в JS как огромную строку, где все целые числа преобразуются в строку и разделяют запятыми. Есть ли способ лучше? Я просмотрел многие вопросы здесь на так что я подумал, может быть уместными, и here кто-то упоминает, что:Как пройти большой пробег между собой от ObjC до JS?

телосложения JavaScriptCore, который поставляется с прошивкой 7 действительно есть типизированные массивы, но, к сожалению, общественность API не предоставляет чтобы вы не могли прикоснуться к их данным из native.

Интересно, правда ли это или есть другой способ? Может быть, вызов функции JS с массивом в качестве аргумента, который переводится в аргумент массива? Или это может быть переведено на множество аргументов, а затем используется Fucntion.arguments.

+0

У меня создалось впечатление, что 'JavaScriptCore.framwork' по-прежнему является частным API для iOS и доступен только для OSX? Я дал немного Google, и пока я могу найти вопросы, связанные с ним, есть нулевая документация для фреймворка, как и для всех других публичных фреймворков Apple (примечание, я знаю, что есть документация для версии Mac) – Popeye

+0

@ Попай хороший момент, но проверьте, что вы обнаружите, что где-то в начале этого года (или в конце 2013 года) что-то изменилось, и люди начали интенсивно интегрировать этот API в свои приложения iOS. Нет официального руководства или разумной ссылки, только файлы заголовков и некоторые сторонние учебники и хаки. – exebook

+0

Да, я немного об этом поглядел на SO, но никто из них ничего не показывал от Apple, чтобы сказать, что теперь это можно использовать, и все, что я могу найти, все еще связано с тем, что это частный API. Кроме того, Apple очень хорошо документирует свои общедоступные API-интерфейсы, и для iOS существует нулевая документация, поэтому я бы сказал, что она по-прежнему конфиденциальна. Просто потому, что об этом говорят SO, и внезапно видимый заголовочный файл не означает, что он общедоступный, заголовок мог бы быть только видимым для того, что Apple сделала. Я бы очень осторожно использовал его. – Popeye

ответ

1

Если вы используете API-интерфейс JSContext ObjC, вы можете просто передать NSArray объектов NSNumber в JavaScriptCore, и он автоматически преобразует его в массив чисел JavaScript. Хотя он не так эффективен, как типизированные массивы, он должен быть лучше, чем нарезка строк.

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

  • Нет связанных вопросов^_^