- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想定义一些常量并考虑使用 #define
结构,如下所示:
#define kUpdateTeamNotification CFSTR("kUpdateTeamNotification")
我的问题是,当我去使用它时:
[[NSNotificationCenter defaultCenter] postNotificationName:kUpdateTeamNotification object:team];
我收到不兼容的指针类型警告。我的印象是 CFSTR
本质上与 @""
字符串相同。我的理解有误吗?
最佳答案
CFString
和 NSString
是 toll-free bridged所以他们是同一回事。 (CFSTR
是一个用于创建 CFString
的宏)。但是,由于指针具有不同的类型,因此您必须明确向编译器发出信号。此外,在 ARC 中,您将不得不使用桥接转换,因为您正在跨越对象和 C 结构之间的界限。
这里是你如何使用桥接 Actor
[[NSNotificationCenter defaultCenter] postNotificationName:(__bridge NSString *)kUpdateTeamNotification object:team];
可以在此处找到有关桥接转换的更多信息:NSString to CFStringRef and CFStringRef to NSString in ARC?
然而,您可能希望使用 NSString
文字而不是 CFStringRef
,并且还可以使用 NSString *const
(如Constants in Objective-C ) 而不是 #define
。
所以你的常量会变成
FOUNDATION_EXPORT NSString *const kUpdateTeamNotification;
NSString *const kUpdateTeamNotification = @"kUpdateTeamNotification";
关于objective-c - CFStringRef 适合常量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19433227/
我想了解从 ARC 中的 CFStringRef 获取 NSString 的正确方法?反方向也一样,ARC中的CFStringRef到NSString? 在不造成内存泄漏的情况下,正确的方法是什么?
我有一个 CFStringRef 变量,我执行检查以确保它不是 1 特定值。如果是,那么我想将其设置为 @""的 NSString 等效项 这是代码 CFStringRef data = = CFDi
我有一个应用程序可以获取用户地址簿中的名字和姓氏。我已经在模拟器和我自己的运行 iOS 7 和 XCode 5 的 iPhone 4S 上进行了测试,它运行良好。 最近,一些国际用户一直在提示我的应用
我想定义一些常量并考虑使用 #define 结构,如下所示: #define kUpdateTeamNotification CFSTR("kUpdateTeamNotification") 我的问题
我只是尝试播放苹果的 HLS 样本流。我的代码很简单: - (IBAction)playHLS:(id)sender { NSString* str = @"https://devima
我正在尝试跟踪程序中的内存使用情况,我需要知道用于字符串数据数组的总内存。 我的字符串表示为 CFStringRef,我的数组是 CFMutableArrayRef。 在字符串上,我可以调用 CFSt
能否请您告诉我在非 ARC 世界中哪种方法是正确的以及为什么。 + (NSString *)getUUID { CFUUIDRef theUUID = CFUUIDCreate(NULL); CFSt
我正在使用 CFDictionaryGetValue 从 CFDictionaryRef 中获取 CFStringRef。 我一直在尝试使用 CFStringGetCString 或 CFString
我有一个 wchar_t *,我需要在需要 CFStringref 的函数上使用它 我尝试使用 CFStringCreateWithCharacters 但我没有得到任何结果。 所以,如果我有: wc
NSString *aNSString; CFStringRef aCFString; aCFString = CFStringCreateWithCString(NULL, [aNSString U
我有一个 DTrace 探针捕获对函数的调用,该函数的参数之一是 CFStringRef。这是保存指向 unicode 字符串的指针的私有(private)结构。但 CFStringRef 本身并不是
我有以下代码片段: -(CFStringRef)setupFileName:(NSString*)_name :(NSString*)_extension { NSString* tmpName =
我正在尝试实现 CFDictionaryGetValue(),如 this appledoc 中所示 list 3: server = CFDictionaryGetValue(credentialD
我正在尝试从主包中检索一些信息: - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { CFSt
我的文件中有以下代码 NSString *filePath = [[NSBundle mainBundle]pathForResource:@"images" ofType:@"plist"];
我正在转换一个将 CFStringRef 转换为 NSString 的 Objective-C 函数,就像这样(其中 FSEventStreamCopyDescription 返回一个 CFStrin
import Foundation import MobileCoreServices func checkFileExtension(fileName: NSString){ println
我一直在寻找从 CFStringRef 出发的正确方法至NSString在 ARC 中避免内存泄漏,一些主要投票的答案建议: NSString * string = (__bridge NSStrin
我在代码中调用以下方法: NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"myappname" withExtension:@"mo
如果是很基础的问题请多多包涵。我尝试使用 __bridge 将 CFStringRef 转换为 NSString,因为我启用了 ARC。 mydevUUIDString = CFUUIDCreateS
我是一名优秀的程序员,十分优秀!