Uygulamamdan bir paket Paket Tanımlayıcısını program aracılığıyla nasıl edinebilirim?
Uygulamamdan bir paket Paket Tanımlayıcısını program aracılığıyla nasıl edinebilirim?
Yanıtlar:
Objective-C
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Hızlı 1.2
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Swift 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];
( dokümantasyon )
let bundleIdentifier = NSBundle.mainBundle().bundleIdentifier
Değeri elde etmek için Core Foundation yaklaşımına ihtiyacınız olabilir. ARC örneği aşağıdaki gibidir:
NSString *value = (__bridge_transfer NSString *)CFDictionaryGetValue(CFBundleGetInfoDictionary(CFBundleGetMainBundle()),
(const void *)(@"CFBundleIdentifier"));
Bu makroları çok daha kısa yapmak için kullanıyorum:
#define BUNDLEID [NSString stringWithString:[[NSBundle mainBundle] bundleIdentifier]]
#define BUNDLEIDEQUALS(bundleIdString) [BUNDLEID isEqualToString:bundleIdString]
böylece sadece şöyle karşılaştırabilirsiniz:
if (BUNDLEIDEQUALS(@"com.mycompany.myapp") {
//do this
}
Programlı olarak almaya çalışıyorsanız, aşağıdaki kod satırını kullanabilirsiniz:
Objective-C:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Swift 3.0:
let bundleIdentifier = Bundle.main.bundleIdentifier
En son hızlı için güncellendi Hem iOS hem de Mac uygulamaları için çalışacaktır.