Apa yang dilakukan flag linker -ObjC?

138

Saya memiliki aplikasi yang berfungsi dengan dan tanpa tanda penaut. Namun, tanpa flag linker, saya mendapatkan perilaku yang sangat berbeda saat menambahkan data ke tampilan.

bsarrazin.dll
sumber
1
bensarz, Anda mendapatkan perilaku yang berbeda tanpa flag linker ... Apa maksudnya ?? Beda bagaimana?
Adil Hussain

Jawaban:

159

Bendera ini menyebabkan linker memuat setiap file objek di perpustakaan yang mendefinisikan kelas atau kategori Objective-C. Meskipun opsi ini biasanya akan menghasilkan eksekusi yang lebih besar (karena kode objek tambahan dimuat ke dalam aplikasi), opsi ini akan memungkinkan pembuatan pustaka statis Objective-C yang efektif yang berisi kategori pada kelas yang sudah ada.

Dari Tanya Jawab Teknis ini

sergio
sumber
2
Bagus! Terima kasih. Apakah ini disebabkan oleh fakta bahwa kami menggunakan GCC 4.2 sebagai kompiler? Apakah menggunakan LLVM GCC 4.2 atau LLVM Compiler 2.0 akan menyelesaikan masalah? Atau apakah saya mencampur hal-hal yang tidak boleh dicampur?
bsarrazin
Saya pikir perilakunya sama dengan kedua kompiler (selain itu, saya tidak tahu apakah ada 2 linker yang berbeda) ...
sergio
4
Apakah ini berarti Anda tidak akan membutuhkan -ObjCapapun selain perpustakaan / SDK? Yaitu Anda tidak perlu menggunakannya dalam target aplikasi yang sebenarnya?
Robert
2
Tidak, ini berarti Anda memerlukan -ObjC dalam setiap proyek yang mengimplementasikan pustaka yang memiliki kategori atau kerangka kerja yang disematkan di dalamnya
arc4randall
Baru saja menemukan ini dengan cara yang sulit!
Alexandre G