Saya bertanya-tanya apa yang memutuskan apakah Anda diizinkan menggunakan <Header.h>
atau "Header.h"
saat Anda mengimpor file di Objective-C. Sejauh ini pengamatan saya adalah Anda menggunakan tanda kutip ""
untuk file dalam proyek Anda yang sumber implementasinya Anda miliki, dan tanda kurung sudut <>
saat Anda mereferensikan perpustakaan atau kerangka kerja.
Tapi bagaimana tepatnya cara kerjanya? Apa yang harus saya lakukan agar kelas saya dapat menggunakan tanda kurung? Saat ini Xcode tidak mengizinkan saya melakukannya untuk header saya sendiri.
Selain itu, dengan melihat di beberapa header framework, saya melihat bahwa header tersebut merujuk satu sama lain <frameworkname/file.h>
. Bagaimana itu bekerja? Ini terlihat sangat mirip dengan paket di Java, tetapi sejauh yang saya tahu, tidak ada yang namanya paket di Objective-C.
sumber
Di C, konvensi adalah bahwa file header dalam
<>
braket dicari di direktori 'sistem' dan""
di direktori pengguna atau lokal.Definisi sistem dan lokal agak kabur, saya kira. Saya yakin ini terlihat di direktori sistem di jalur penyertaan atau di CPPFLAGS untuk <header.h>, dan direktori lokal atau direktori yang ditentukan dengan -I ke kompiler dicari untuk file "header.h".
Saya berasumsi bahwa cara kerjanya sama untuk Objective-C.
sumber
Untuk mengimpor kelas Anda sendiri menggunakan "<>" Anda harus meletakkan file header (* .h) di folder lib compiler atau mengatur ponting VARIABEL SISTEM ke folder lib Anda.
sumber
Atau mengatur
Always Search User Path
untukYES
sehingga Anda dapat menggunakan kurung sudut.sumber
Dengan tanda kurung sudut misalnya
<Foundation/Foundation.h>
Anda mengimpor file sistem.Anda menggunakan tanda kutip ganda
"Person.h"
untuk mengimpor file lokal (file yang Anda buat) dan untuk memberitahu compiler di mana mencarinya.sumber
<Name.h>
-Angle brackets
memberitahu preprocessor untuk mencari di direktori sistem khusus yang telah ditentukan sebelumnya. Misalnya Anda mengimpor header sistem seperti<UIKit/UIKit.h>
atau menambahkan kerangka kerja"Name.h"
-Quotation marks
memberitahu preprocessor untuk mencari di direktori saat ini . Jika header tidak ditemukan preprocessor coba gunakan<Name.h>
. Biasanya Anda harus menggunakannya dengan file proyek Andasumber
Baru saja menemukan masalah yang sama, ada 2 jenis jalur pencarian yaitu Xcode:
Jika Anda menambahkan folder include Anda sendiri ke dalam Jalur Pencarian Header, Anda dapat menggunakan tanda kurung siku tanpa masalah.
sumber
APA ITU HEADER FILE? File header berisi definisi fungsi dan variabel yang dapat digabungkan ke dalam program C apa pun dengan menggunakan pernyataan pra-prosesor #include. File header standar disediakan dengan setiap compiler, dan mencakup berbagai area, penanganan string, matematika, konversi data, pencetakan dan pembacaan variabel. Mis- #include itu berisi informasi tentang input seperti scanf (), dan output seperti fungsi printf () dan lain-lain dalam kompiler.
TERMASUK
1) # TERMASUK: - Ini adalah pra-prosesor yang memproses sebelum proses fungsi utama. Pekerjaan utama pra-prosesor adalah menginisialisasi lingkungan program, yaitu program dengan file header. 2) .h: - (File header) File header adalah file dengan ekstensi .h yang berisi deklarasi fungsi C dan definisi makro dan untuk dibagikan di antara beberapa file sumber. T) Ada dua jenis file header: file yang ditulis oleh programmer dan file yang disertakan dengan kompiler Anda? A) Dalam tanda kurung sudut Bentuk braket sudut adalah untuk "global" termasuk - yang ditemukan di suatu tempat di jalur include diteruskan ke kompilator (misalnya #include) Ini digunakan untuk menggunakan fungsi perpustakaan yang semuanya siap ditentukan dalam kompilator. Dalam C konvensi adalah bahwa file header di <> braket dicari di 'sistem' direktori B) Tanda kutip: - bentuk kutipan "header.h" adalah untuk "lokal" menyertakan file (Anda perlu menentukan jalur relatif dari file saat ini, misalnya #include "headers / my_header.h") Dalam C konvensi adalah file header di "" dicari di direktori pengguna atau lokal. Di dalamnya satu file akan dimasukkan dalam file lain. (FILE INCLUSION). Ini dapat digunakan dalam dua kasus: Kasus 1: Jika kita memiliki program yang sangat besar, kode sebaiknya dibagi menjadi beberapa file berbeda, masing-masing berisi satu set fungsi terkait. Kasus 2: Ada beberapa definisi fungsi dan mikro yang paling kita butuhkan di semua program yang kita tulis. Ex ) Dalam C konvensi adalah bahwa file header di "" dicari di direktori pengguna atau lokal. Di dalamnya satu file akan dimasukkan dalam file lain. (FILE INCLUSION). Ini dapat digunakan dalam dua kasus: Kasus 1: Jika kita memiliki program yang sangat besar, kode sebaiknya dibagi menjadi beberapa file berbeda, masing-masing berisi satu set fungsi terkait. Kasus 2: Ada beberapa definisi fungsi dan mikro yang paling kita butuhkan di semua program yang kita tulis. Ex ) Dalam C konvensi adalah bahwa file header di "" dicari di direktori pengguna atau lokal. Di dalamnya satu file akan dimasukkan dalam file lain. (FILE INCLUSION). Ini dapat digunakan dalam dua kasus: Kasus 1: Jika kita memiliki program yang sangat besar, kode sebaiknya dibagi menjadi beberapa file berbeda, masing-masing berisi satu set fungsi terkait. Kasus 2: Ada beberapa definisi fungsi dan mikro yang paling kita butuhkan di semua program yang kita tulis. Ex
sumber