ฉันจะรับสตริงของ Bundle Identifier โดยทางโปรแกรมจากภายในแอพของฉันได้อย่างไร
ฉันจะรับสตริงของ Bundle Identifier โดยทางโปรแกรมจากภายในแอพของฉันได้อย่างไร
คำตอบ:
Objective-C
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
สวิฟท์ 1.2
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
สวิฟท์ 3.0
let bundleIdentifier = Bundle.main.bundleIdentifier
Xamarin.iOS
var bundleIdentifier = NSBundle.MainBundle.BundleIdentifier
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Bundle.main.bundleIdentifier!
[[NSBundle mainBundle] bundleIdentifier];
( เอกสาร )
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
คุณอาจต้องใช้วิธีการพื้นฐานของมูลนิธิเพื่อรับค่า ตัวอย่าง ARC มีดังต่อไปนี้:
NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
(const void *)(@"CFBundleIdentifier"));
ในการรับตัวระบุบันเดิลโดยทางโปรแกรมในSwift 3.0 :
สวิฟท์ 3.0
let bundle = Bundle.main.bundleIdentifier
ฉันใช้มาโครเหล่านี้เพื่อทำให้สั้นลงมาก:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
ดังนั้นฉันจึงสามารถเปรียบเทียบเช่นนี้
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
//do this
}
ถ้าคุณพยายามทำให้เป็นโปรแกรมคุณสามารถใช้บรรทัดด้านล่างของรหัส:
Objective-C:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
สวิฟท์ 3.0:
let bundleIdentifier = Bundle.main.bundleIdentifier
อัปเดตเพื่อความรวดเร็วล่าสุดมันจะทำงานได้ทั้งแอป iOS และ Mac