Co robi flaga konsolidatora -ObjC?


136

Mam aplikację, która działa z flagą konsolidatora i bez niej. Jednak bez flagi konsolidatora uzyskuję zupełnie inne zachowanie podczas dodawania danych do widoku.


1
bensarz, masz inne zachowanie bez flagi konsolidatora ... Co to znaczy ?? Jak inaczej?
Adil Hussain

Odpowiedzi:


158

Ta flaga powoduje, że konsolidator ładuje każdy plik obiektowy w bibliotece, która definiuje klasę lub kategorię Objective-C. Chociaż ta opcja zazwyczaj skutkuje większym plikiem wykonywalnym (ze względu na dodatkowy kod obiektowy załadowany do aplikacji), pozwoli to na pomyślne utworzenie efektywnych bibliotek statycznych Objective-C, które zawierają kategorie w istniejących klasach.

Z tego pytania technicznego


2
Wspaniały! Dziękuję Ci. Czy jest to spowodowane faktem, że używamy GCC 4.2 jako kompilatora? Czy użycie LLVM GCC 4.2 lub LLVM Compiler 2.0 rozwiązałoby problem? A może mylę rzeczy, których nie powinno się mieszać?
bsarrazin

Myślę, że zachowanie jest takie samo dla obu kompilatorów (poza tym nie wiem, czy są 2 różne linkery) ...
sergio

4
Czy to oznacza, że ​​nigdy nie będziesz potrzebować -ObjCniczego innego niż biblioteka / SDK? Czyli nigdy nie powinieneś używać go w rzeczywistym celu aplikacji?
Robert

2
Nie, oznacza to, że potrzebujesz -ObjC w każdym projekcie implementującym bibliotekę, która ma kategorię lub osadzony framework
arc4randall

Właśnie odkryłem to na własnej skórze!
Alexandre G
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.