2012-01-16 19 views

答えて

374

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

スウィフトのObjective-C 1.2

let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier 

スイフト3.0

let bundleIdentifier = Bundle.main.bundleIdentifier 
+9

この回答はiOSに限定されません。これはMacアプリでも機能します。 – Jonny

+7

Swiftでは、 'let bundleIdentifier = NSBundle.mainBundle()。bundleIdentifier' –

+1

(あなたはこのコメントを削除することができます)を使用しますが、コメントの答えを読むのが大好きです.JonnyとTimのようなものを見てください別の全体の答えでこれを見ることができます)、それはまだ関連して有用な何かにリンクします。素晴らしいコミュニティの人に感謝します。 – haxpor

45
[[NSBundle mainBundle] bundleIdentifier]; 

documentation

+2

+1ドキュメンテーションのリンクです。 –

+0

Swiftでは、 'let bundleIdentifier = NSBundle.mainBundle()。bundleIdentifier'を使用してください。 –

1

値を取得するには、Core Foundationアプローチが必要な場合があります。 ARCの例は以下の通りです:あなたがプログラムでそれを取得しようとしている

NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()), 
                    (const void *)(@"CFBundleIdentifier")); 
0

fは、あなたは、コードの行の下に使用することができます。

のObjective-C:

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

スウィフト3.0:

let bundleIdentifier = Bundle.main.bundleIdentifier

最新のswiftに更新されます。 iOSとMacの両方のアプリケーションで動作します。

私はそれがはるかに短くするこれらのマクロを使用
0

#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]] 

#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString] 

ので、私はちょうどこのように比較することができます:スウィフト3.0でプログラムバンドル識別子を取得するには

if (BUNDLEIDEQUALS(@"com.mycompany.myapp") { 
    //do this 
} 
1

スウィフト3.0

let bundle = Bundle.main.bundleIdentifier 
関連する問題