Что такое расширение файла объекта сборки в iOS?
Когда я создаю объектный класс java в проекте, будет создан файл сборки с расширением.class, который не будет читаться человеком; Как насчет файлов быстрой сборки?
пример:
car.java --> build --> car.class
что будет после сборки?
car.swift --> build --> ?
2 ответа
Процесс компиляции немного отличается от Swift для Java, поэтому не обязательно прямой эквивалент.
Поскольку сборка продолжается, каждый файл Swift будет скомпилирован в файл "Объект", заканчивающийся на .o
расширение. Затем, когда они все собраны, они соединяются вместе, образуя двоичный файл. Если вы откроете IPA-файл приложения для iOS, вы не увидите .o
файлы, такие как, как вы можете увидеть .class
файлы внутри файла jar Java.
В мире iOS каждый исходный файл - .m
, .h
, .swift
компилируются в исполняемый байт-код, понятный процессору. Эти файлы также называютсяMach object
- ABI Mach-O
(.o
) [О программе] файл с метаинформацией.
`*.swift` -> `*.o` (Mach-O object file).
Например, если вы создали статическую библиотеку - myLibrary.a
. Ты можешь использоватьnm
Команда [О программе] для отображения списка имен (таблицы символов).
nm path/myLibrary.a
В результате вы увидите список *.o
файлы с методами, именами переменных и т. д.
*.swift
-> *.o
(Объектный файл Mach-O).
Например, у вас есть myLibrary.a - static library (*.a)
, Ты можешь использовать nm
команда для отображения списка имен (таблица символов).
nm myLibrary.a
В результате вы увидите список *.o
файлы с методами, именами переменных и т. д.