Dapatkan pengenal paket secara terprogram di Swift?

95

Bagaimana saya bisa mendapatkan ID bundel di Swift?

Versi Objective-C:

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Pengguna
sumber

Jawaban:

208

Coba ini:

let bundleID = NSBundle.mainBundle().bundleIdentifier

Swift 3+:

let bundleID = Bundle.main.bundleIdentifier
Sebastian
sumber
20
Tahukah Anda mengapa bundleIdentifieritu opsional? Dalam kasus apa itu bisa terjadi nil?
Alexander - Kembalikan Monica
Kadang-kadang ini bukan tentang dalam kasus apa itu bisa menjadi nol ketika mencapai pengembangan tingkat tinggi, tetapi tentang kasus mana itu bisa menjadi nol.
Sethmr
2
@Alexander saat itu bukan bundel utama, atau CFBundleIdentifierhilang
ArtFeel
6

Ini hampir sama di Swift kecuali nama kelas dan metode telah dipersingkat:

let bundleIdentifier = Bundle.main.bundleIdentifier // return type is String?

sumber
5

Jika Anda mencoba untuk mendapatkannya secara terprogram, Anda dapat menggunakan baris kode di bawah ini:

Objective-C:

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Diperbarui untuk kecepatan terbaru Ini akan berfungsi untuk aplikasi iOS dan Mac.

Untuk Info Lebih Lanjut, Cek di sini:

Apple Docs: https://developer.apple.com/documentation/foundation/bundle#//apple_ref/occ/instm/NSBundle/bundleIdentifier

Aks
sumber
hei periksa swift3, hapus centang negatif Anda.
Aks