CFStringRef CFSTR与和NSString
来源:互联网 发布:网络诈骗主犯 编辑:程序博客网 时间:2024/06/05 14:42
CoreFoundation里面的CFStringRef和NSString*是可以直接转换的,两种也都有一个相似的用来直接赋常量的操作。例如:
CFStringRef a = CFSTR("a");
NSString *b = @"b";
CFSTR是一个宏,这个宏的定义可能是CFStringMakeConstantString,也可能是__builtin___CFStringMakeConstantString。如果是CFStringMakeConstantString,看看CFStringMakeConstantString的实现就会明白,CFSTR("a")是存放在一个全局字典里面的,下次用到CFSTR("a")的时候先查字典里面有没有,如果有就是用存在的,如果没有则分配一个,并且放到字典里面。
所以这里有两个需要注意的,一:CFSTR分配出来的字符串对象是不能自己释放的,如果你释放了下次在使用就会使用到一个野对象;二:多线程使用可能会出问题,因为全局的字典是没有锁的。
而NSString的@有些不一样,应该和__builtin___CFStringMakeConstantString有些类似,允许你多线程使用,同样也不需要你自己去release,可以理解为b是一个autorelease的对象,系统会自己自动收回b。如果想长时间持有b那就retain,但不要忘了release。
- CFStringRef CFSTR与和NSString
- 和CFStringRef相关的CFSTR与和NSString相关的@
- 和CFStringRef相关的CFSTR与和NSString相关的@
- 和CFStringRef相关的CFSTR与和NSString相关的@
- CFStringRef和NSString相互转换
- CFStringRef和NSString相互转换
- NSString & CFStringRef
- CFStringRef和NSString之间的转换
- CFDictionaryRef 转换 NSDictionary,CFStringRef 转换 NSString
- CFUUIDRef和CFStringRef-生成唯一标识符
- CFStringRef 类型转NSString类型使用 需要使用 __bridge,一定要记住
- cast of Objective-C pointer type 'NSString *' to C pointer type 'CFStringRef' (aka 'const struct __C
- NSString NSData 转换与常见的 NSString 和 NSMutableString 方法
- NSString NSData 转换与常见的 NSString 和 NSMutableString 方法
- NSString NSData 转换与常见的 NSString 和 NSMutableString 方法
- NSString NSData 转换与常见的 NSString 和 NSMutableString 方法
- NSString NSData 转换与常见的 NSString 和 NSMutableString 方法
- NSString NSData 转换与常见的 NSString 和 NSMutableString 方法
- __DATE__转换为YYYY-MM-DD
- jquery的suggest
- Oracle执行了删除分区操作后,索引无效的情况
- win7的vmware中安装ubuntu 13.04看不到共享目录
- 颜色表大全 颜色中英文对照表
- CFStringRef CFSTR与和NSString
- (个人笔记) swing 设置程序级快捷键 和 窗口集快捷键
- 如何跳出当前的多重循环?
- c++11 线程:让你的多线程任务更轻松
- Python正则表达式--前向界定符
- mac下 eclipse支持magic mouse/Trackpad 操作
- CAEmitterLayer(粒子系统)学习笔记(含Demo)
- hibernate中save()和persist()
- SortedList