我正在尝试使用应用程序的目录获取 bundleID,但出现错误: EXC_BAD_ACCESS(code=1, address=0xd8)
应用程序目录!是一个字符串
let startCString = (application.directory! as NSString).UTF8String //Type: UnsafePointer<Int8>
let convertedCString = UnsafePointer<UInt8>(startCString) //CFURLCreateFromFileRepresentation needs <UInt8> pointer
let length = application.directory!.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
let dir = CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, convertedCString, length, false)
let bundle = CFBundleCreate(kCFAllocatorDefault, dir)
let result = CFBundleGetIdentifier(bundle)
我在结果行中收到此错误。
我在这里做错了什么?
最佳答案
如果你想以编程方式获取它,你可以使用下面的代码行:
目标-C:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
swift 3.0:
let bundleIdentifier = Bundle.main.bundleIdentifier
(针对最新的 swift 进行了更新它将适用于 iOS 和 Mac 应用程序。)
有关更多信息,请查看此处:
Apple Docs: https://developer.apple.com/documentation/foundation/bundle#//apple_ref/occ/instm/NSBundle/bundleIdentifier
关于swift - 在 Swift 中获取包标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35673780/