Получить идентификатор пакета программно в Swift?


Ответы:


209

Попробуй это:

let bundleID = NSBundle.mainBundle().bundleIdentifier

Swift 3+:

let bundleID = Bundle.main.bundleIdentifier

20
Вы знаете, почему bundleIdentifierэто необязательно? В каких случаях это может быть nil?
Александр - Восстановить Монику

Иногда дело не в том, в каких случаях он может быть нулевым, когда он достигает высокого уровня разработки, а в том, в каких случаях он может быть нулевым под капотом.
Sethmr

2
@Alexander, когда это не основной комплект, или CFBundleIdentifierон отсутствует
ArtFeel

6

В Swift это почти то же самое, за исключением того, что имена классов и методов были сокращены:

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

5

Если вы пытаетесь получить это программно, вы можете использовать следующую строку кода:

Цель-C:

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

Swift 3.0:

let bundleIdentifier =  Bundle.main.bundleIdentifier

Обновлено для последней версии Swift. Он будет работать как для приложений iOS, так и для Mac.

Для получения дополнительной информации проверьте здесь:

Документы Apple: https://developer.apple.com/documentation/foundation/bundle#//apple_ref/occ/instm/NSBundle/bundleIdentifier


Эй, чек на swift3, сними отрицательный чек.
Акс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.