Uzyskać identyfikator pakietu programowo w Swift?

95

Jak mogę uzyskać identyfikator pakietu w Swift?

Wersja Objective-C:

NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Użytkownik
źródło

Odpowiedzi:

210

Spróbuj tego:

let bundleID = NSBundle.mainBundle().bundleIdentifier

Swift 3+:

let bundleID = Bundle.main.bundleIdentifier
Sebastian
źródło
20
Czy wiesz, dlaczego bundleIdentifierjest to opcjonalne? W jakich przypadkach może to być nil?
Alexander - Przywróć Monikę
Czasami nie chodzi o to, w jakich przypadkach może być zerowy, gdy osiągnie wysoki poziom rozwoju, ale o tym, w których przypadkach może być zerowy pod maską.
Sethmr
2
@Alexander, gdy nie jest to główny pakiet lub go CFBundleIdentifierbrakuje
ArtFeel
6

W Swift jest prawie to samo, z wyjątkiem skrócenia nazw klas i metod:

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

źródło
5

Jeśli próbujesz uzyskać to programowo, możesz użyć poniższej linii kodu:

Cel C:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Zaktualizowany do najnowszej wersji Swift Będzie działać zarówno w aplikacjach na iOS, jak i Mac.

Aby uzyskać więcej informacji, sprawdź tutaj:

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

Aks
źródło
hej, sprawdź dla swift3, usuń swój negatywny czek.
Aks