Swift ile programlı olarak paket tanımlayıcı elde edilsin mi?


95

Swift'de paket kimliğini nasıl alabilirim?

Objective-C sürümü:

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

Yanıtlar:


209

Bunu dene:

let bundleID = NSBundle.mainBundle().bundleIdentifier

Swift 3+:

let bundleID = Bundle.main.bundleIdentifier

20
Neden bundleIdentifieristeğe bağlı olduğunu biliyor musunuz ? Hangi durumlarda olabilir nil?
Alexander - Eski Monica

Bazen mesele, yüksek seviyeli gelişime ulaştığında hangi durumlarda sıfır olabileceği değil, hangi durumlarda kaputun altında sıfır olabileceği ile ilgilidir.
Sethmr

2
@Alexander, ana paket değilse veya CFBundleIdentifiereksik olduğunda
ArtFeel

6

Sınıf ve yöntem adlarının kısaltılması dışında Swift'de hemen hemen aynı şey:

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

5

Programlı olarak almaya çalışıyorsanız, aşağıdaki kod satırını kullanabilirsiniz:

Amaç-C:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

En son sürat için güncellendi Hem iOS hem de Mac uygulamaları için çalışacaktır.

Daha Fazla Bilgi İçin Buraya Bakın:

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


hey swift3'ü kontrol edin, negatif çekinizi kaldırın.
Aks
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.