Bundle-ID programmgesteuert in Swift erhalten?


92

Wie kann ich die Bundle-ID in Swift erhalten?

Objective-C-Version:

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

Antworten:


205

Versuche dies:

let bundleID = NSBundle.mainBundle().bundleIdentifier

Swift 3+:

let bundleID = Bundle.main.bundleIdentifier

20
Wissen Sie, warum bundleIdentifiereine Option ist? In welchen Fällen kann es sein nil?
Alexander - Reinstate Monica

Manchmal geht es nicht darum, in welchen Fällen es Null sein könnte, wenn es die hohe Entwicklungsstufe erreicht, sondern darum, in welchen Fällen es unter der Haube Null sein könnte.
Sethmr

2
@ Alexander, wenn es nicht das Hauptpaket ist oder CFBundleIdentifierfehlt
ArtFeel

5

In Swift ist es so ziemlich dasselbe, außer dass die Klassen- und Methodennamen gekürzt wurden:

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

4

Wenn Sie versuchen, es programmgesteuert abzurufen, können Sie die folgende Codezeile verwenden:

Ziel c:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Aktualisiert für die neueste Version Es funktioniert sowohl für iOS- als auch für Mac-Apps.

Weitere Informationen finden Sie hier:

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


hey check for swift3, entferne deinen negativen Check.
Aks
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.