[问题记录]IOS菜鸟问题-GUID获取释放时奔溃
来源:互联网 发布:fliqlo windows 怎么用 编辑:程序博客网 时间:2024/06/06 00:18
遇到一些问题就先记录下来吧,以后回过头来看看。
#import <Foundation/Foundation.h>#import "main.h"int main(int argc, const char * argv[]) { //自动释放池开始 @autoreleasepool { NSLog(@"这是自动释放池,在这里面的操作结束后会自动释放");//不知道我的理解有没有错 } //生成GUID NSString* guid; for(int i = 0; i < 100; i++){ guid = stringWithUUID();//获取GUID NSLog(@"%d,%@", i, guid);//输出 } return 0;}NSString* stringWithUUID(){ //create a new UUID CFUUIDRef uuidObj = CFUUIDCreate(nil);//创建新的UUID对象 //get the string representation of the UUID CFStringRef uuidstr = CFUUIDCreateString(nil, uuidObj);//UUID对象转字符 //NSString *restr =(NSString*)CFBridgingRelease(uuidstr);//CFBridgingRelease作用是啥 NSString *restr = (__bridge_transfer NSString *)uuidstr;//上面的现在改成这一句了 CFRelease(uuidObj); //CFRelease(uuidstr);//关于是否释放这一块,目前我还没有理解,但是循环中如果加了这一句就奔溃,是啥问题呢? return restr;}
摆渡了一下,现在大概了解了可能是因为CFStringRef 到 NSString ARC泄漏。
相关类似问题:
解决方法:
事实上根据"标准"可可的命名约定,函数,包含 Create 或 Copy 在其名称中返回的对象的引用计数为 1。您必须将成弧土地转移此引用计数,所以那弧可以照顾它。您使用 __bridge_transfer 关键字用于此目的。
NSString *string = (__bridge_transfer NSString *)cfString;
NSString *strNS = @""; CFStringRef strRef = (__bridge CFStringRef)strNS; strNS = (__bridge NSString *)strRef;
0 0
- [问题记录]IOS菜鸟问题-GUID获取释放时奔溃
- iOS:自动释放问题?
- OBIEE菜鸟历程:问题记录
- iOS中自动释放问题
- IOS-手动释放内存问题
- ios gcd 内存释放问题
- iOS 获取GUID
- iOS 获取GUID
- 记录hibernate+spring中session释放问题
- 菜鸟啊,关于动态数组的释放问题
- 有关GUID的问题
- [ios] crash问题记录
- ios 推送问题记录
- IOS 遇到问题 记录
- [U3D][iOS]问题记录
- [iOS]小问题记录
- wince菜鸟入门问题记录一
- wince菜鸟入门问题记录二
- Android 4.0 Launcher2源码分析——Workspace滑动
- 能将word转为pdf的转换软件
- c++中 宏定义(#define)的用法
- 123士兵杀敌(四)(树状数组 插线问点)
- #详解C++中的指针与引用
- [问题记录]IOS菜鸟问题-GUID获取释放时奔溃
- GitHub上最火的40个Android开源项目
- Subsets
- 常见编译Warning的解决方法
- 1022. D进制的A+B (20)
- Spring整合JMS(一)——基于ActiveMQ实现
- androidStudio使用
- ubuntu 下安装 matplotlib 报错 numpy tornado pyparsing freetye png 依赖没有
- 关于NSURLConnection