Это уже было сделано?
Не знаю, о чем я.
Есть ли библиотека с открытым исходным кодом, которая предоставила бы мне основополагающийинструменты, которые мне нужны для извлечения этой информации?
В основе class-dump лежит libMachObjC
, что делает именно то, что вы хотите, то есть анализ всех классов / методов / ivars иБольше.API очень чистый, его очень легко использовать.
Если у вас есть опыт в подобных вещах, возможно ли то, что я пытаюсь достичь?
К сожалению, нет, потому что некоторые классы не объявляют реальный класс, а вместо этого используют id
.Например, вот информация, которую можно извлечь из дампа класса UIKit:
@interface UITableView : UIScrollView <NSCoding>
{
int _style;
id <UITableViewDataSource> _dataSource;
id _rowData;
...
Информация о типе _rowData
ivar id
, но если вы проверите во время выполнения, вы увидите, что _rowData
является экземпляром класса UITableViewRowData
.Эта информация отсутствует в двоичном файле Mach-O, поэтому вы не можете найти связь между UITableView
и UITableViewRowData
.То же самое относится к параметрам метода.