Dlaczego flaga linkera -ObjC jest potrzebna do łączenia kategorii w bibliotekach statycznych? (LLVM)

Odnośnie tego technicznego pytania i odpowiedzi od Apple: http://developer.apple.com/library/mac/#qa/qa1490/_index.html

Myślę, że kompilator może oznaczać wywołania metod zdefiniowanych w kategoriach w czasie kompilacji (wie, że zostały zdefiniowane w kategorii, a nie w klasie głównej, ponieważ prototyp był w@interface Class (Category) sekcja) - aby mógł zbudować tabelę w plikach obiektowych „zewnętrznych metod kategorii”. Następnie linker, po wykonaniu normalnego połączenia, powinien być w stanie połączyć / scalić i przetworzyć tabele „metod kategorii zewnętrznej” ze wszystkich obiektów i szukać pasujących symboli w dopasowywaniu kategorii klas ze wszystkich połączonych struktur / bibliotek / obiektów, a następnie może przyciągnąć te, które nie były już „w” celu.

Musi być coś, czego brakuje, ale co to jest? Dlaczego to nie jest możliwe?

questionAnswers(1)

yourAnswerToTheQuestion