2013-04-29 2 views
2

Возможно ли, что вход от UITextField работает как код? например, у меня есть текстовое поле и кнопка. Пользователь вводит некоторый код (например, NSLog(@"hello world")), затем нажимает кнопку. Независимо от того, какой пользователь вводит, он рассматривается как код и работает как часть обычного файла .m.iOS - ввод рабочего текста в виде кода

Итак, возможно ли это?

(Edit: Немножко как входная команда Python, где вход можно рассматривать как код

Если вам нужно больше информации просто спросить, хотя я думаю, что должно покрыть

ответ

6

Технически говоря.: да, это возможно, но это далеко не просто

Так что вы хотите:... ввод некоторые Objective-C код и сделать его запустить, из приложения Что необходимо для этого:

  1. Компилятор Objective-C, встроенный в приложение;
  2. И разрешение OS/kernel на запуск полученного кода.

Решение проблемы № 1 может быть включено в комплект компилятора Clang/LLVM в вашем приложении (но он огромный, несколько десятков мегабайт). Тем не менее, 1. быть подготовленным к тому, что вы не сможете перенести его в iOS (это hard, чтобы установить функциональную поперечную привязку, особенно с безмозговой системой сборки LLVM и Clang), 2. и сгенерированный код не будет быть координированным в любом случае, поэтому он не будет работать в официальной среде, он будет работать только на взломанных устройствах.


Если вы хотите предоставить какую-то функцию интерактивного программирования для пользователя, то лучше попробовать встраивание небольшой язык сценариев, таких как Lua в приложение вместо этого.

+0

Завершите свое предложение для встраивания Lua. Он небольшой и предназначен для легкого встраивания. –

+0

@MikeC. Вот как создатель Коде стал миллионером ...: P – 2013-04-29 19:22:55

+0

Спасибо! Отмечено как ответ & +1. – user2333270

0

Короткий и практичный ответ, нет.

Python - интерпретируемый язык, цель-c должна быть скомпилирована сперва для запуска, и у вас нет компилятора, доступного внутри приложения. Даже если у вас есть компилятор, этот код не сможет запускаться (он не подписан), и вы, вероятно, будете нарушать множество правил appstore.

+0

Пожалуйста, скажите мне, что случилось с ответом, и я отредактирую его. Я пытался дать более краткий и простой ответ, чем ваш (что более точно, но, возможно, слишком сложно). – txulu

+0

«Короткий ответ, нет». - это ложь. – 2013-04-29 19:51:43

+0

Хорошо, теперь я заявляю, что это короткий и практичный (это оба). Я не утверждаю, что он на 100% правдивый и точный. Спасибо за понимание. – txulu

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