objective-c - 将 CFStringRef 转换为 NSString

标签 objective-c macos cocoa

我正在尝试从主包中检索一些信息:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {    
    CFStringRef bundleVer = CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), kCFBundleVersionKey);
    NSString *appVersion = (__bridge NSString *)bundleVer;
}

我可以获得 CFStringRef(在调试中我可以看到与该变量关联的正确值),但是当我尝试将其转换为 NSString 时,我的 appVersion 变量具有“null”值(以前为 nil)。

我做错了什么?

我正在使用 ARC。

编辑:我的项目似乎有问题,即使使用简单的静态赋值,也无法分配每个 NSString 对象,测试变量的值为 (null)

NSString *test = @"";

最佳答案

  CFStringRef boundleVer = CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), kCFBundleVersionKey);
  NSString *appVersion = (__bridge NSString *)(boundleVer);

它在我这边工作,它正在返回“2”

关于objective-c - 将 CFStringRef 转换为 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26301440/

相关文章:

ios - CAGradientLayer 没有正确绘制渐变

macos - 如何为 Mac 操作系统安装 glibc?

linux - grep/sed 在一个目录下复制两个相同的文件名

ios - xcode 未获取头文件中的 typedef

iPhone 邮件中的复选框

iphone - 自定义 setter/getter 中的属性

ios - 带有 UITabBarController 的 ABPeoplePickerNavigationController 在 iOS8 中未正确显示

objective-c - 将文件重命名为 .mm 后如何进行 Objective C 样式分配

objective-c - 使用 NSViewAnimation 使 NSOpenGLView 淡入淡出

objective-c - 过滤日期字符串