CFString
并且NSString
是免费桥接的,因此它们是相同的。(CFSTR
是创建一个宏CFString
)。但是,您必须明确地向编译器发出信号,因为指针具有不同的类型。此外,在 ARC 中,您将不得不使用桥接强制转换,因为您正在跨越对象和 C 结构之间的边界。
以下是如何使用桥接演员表
[[NSNotificationCenter defaultCenter] postNotificationName:(__bridge NSString *)kUpdateTeamNotification object:team];
更多关于桥接演员的信息可以在这里找到:NSString to CFStringRef and CFStringRef to NSString in ARC?
但是,您可能希望使用NSString
文字而不是 aCFStringRef
并且还使用 a NSString *const
(如Objective-C 中的常量中所述)而不是 a #define
。
所以你的常数会变成
头文件 (.h)
FOUNDATION_EXPORT NSString *const kUpdateTeamNotification;
实施文件 (.m)
NSString *const kUpdateTeamNotification = @"kUpdateTeamNotification";