Uzyskać identyfikator pakietu programowo w Swift?


Odpowiedzi:


210

Spróbuj tego:

let bundleID = NSBundle.mainBundle().bundleIdentifier

Swift 3+:

let bundleID = Bundle.main.bundleIdentifier

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?

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


hej, sprawdź dla swift3, usuń swój negatywny czek.
Aks
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.