iOS, можно ли прочитать объективный код C из файла и выполнить его в определенный момент в программе?
У меня есть куча кода для рисования (примитивное рисование, в основном вызовы рисования по пути Безье), которые хранятся в паре файлов, и код рисования занимает до нескольких сотен строк. Я хотел знать, возможно ли прочитать этот код из файла и выполнить его в определенный момент в моей программе (может быть, метод рисования UIView), очень похоже на то, что мы делаем с шейдерами в openGL 2.0.
Я хочу иметь возможность использовать этот код для рисования, но я не хочу копировать код рисования в используемый класс UIView, потому что он становится громоздким в обслуживании и трудно читаемым, плюс у меня много таких файлов!
Я знаю, что могу читать содержимое файла, используя существующие фреймворки, но есть ли что-то, что позволит мне выполнить чтение содержимого файла, где мне нужен этот код для рисования?
Любые идеи / помощь приветствуется!
2 ответа
Я думаю, что вы действительно хотите это категория ( https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html). Например, вы создадите категорию в UIView со всем вашим кодом для рисования, затем импортируете категорию в подклассы своего представления, которые в ней нуждаются, и вызовете метод там, где он вам нужен. Я уверен, что Apple не позволит вам скомпилировать код на iPhone (шейдеры, очевидно, являются исключением).
Это невозможно прочитать строки файла формы кода и сделать его исполняемым во время выполнения. Вы можете подклассифицировать свой класс UIView, который содержит код для рисования, или вы также можете сделать категорию этого класса, после чего вы можете вызвать этот код в соответствии с вашими требованиями.