【发布时间】:2016-06-10 23:18:06
【问题描述】:
我正在尝试使用应用程序的目录获取 bundleID,但出现错误: EXC_BAD_ACCESS(代码=1,地址=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)
我在结果行上收到此错误。
我在这里做错了什么?
【问题讨论】:
-
这是为你自己的应用程序的捆绑标识符吗?为什么这么复杂?看看Obtain bundle identifier programatically in Swift?。
-
不是。这是另一个应用程序的捆绑包。这就是为什么我不在 NSBundle 上使用 .mainBundle().bundleIdentifier。
-
那
NSBundle(path: ...).bundleIdentifier呢? -
什么鬼!真的吗?这么简单?非常感谢(!)!
标签: swift cocoa foundation