Что такое расширение файла объекта сборки в iOS?

Когда я создаю объектный класс java в проекте, будет создан файл сборки с расширением.class, который не будет читаться человеком; Как насчет файлов быстрой сборки?

пример:

car.java  --> build --> car.class

что будет после сборки?

car.swift --> build --> ?

2 ответа

Решение

Процесс компиляции немного отличается от Swift для Java, поэтому не обязательно прямой эквивалент.

Поскольку сборка продолжается, каждый файл Swift будет скомпилирован в файл "Объект", заканчивающийся на .o расширение. Затем, когда они все собраны, они соединяются вместе, образуя двоичный файл. Если вы откроете IPA-файл приложения для iOS, вы не увидите .o файлы, такие как, как вы можете увидеть .class файлы внутри файла jar Java.

Я знаю, что Swift использует LLVM точно так же, как Objective-C.

Итак, в Java у нас есть это (источник: W3schools).

И здесь, для Swift (источник: Swift.org)

Надеюсь, это поможет!

В мире iOS каждый исходный файл - .m, .h, .swiftкомпилируются в исполняемый байт-код, понятный процессору. Эти файлы также называютсяMach object - ABI Mach-O (.o) [О программе] файл с метаинформацией.

`*.swift` -> `*.o` (Mach-O object file).

Например, если вы создали статическую библиотеку - myLibrary.a. Ты можешь использоватьnm Команда [О программе] для отображения списка имен (таблицы символов).

nm path/myLibrary.a

В результате вы увидите список *.o файлы с методами, именами переменных и т. д.

[Процесс сборки Xcode]

*.swift -> *.o (Объектный файл Mach-O).

Например, у вас есть myLibrary.a - static library (*.a), Ты можешь использовать nm команда для отображения списка имен (таблица символов).

nm myLibrary.a

В результате вы увидите список *.o файлы с методами, именами переменных и т. д.

Другие вопросы по тегам