我的应用程序上有很多这样的行
UIColor *myColor = [UIColor colorWithRed:corR green:corG blue:corB alpha:1.0];
Run Code Online (Sandbox Code Playgroud)
仪器说这些线路正在泄漏.因为这不是正式的,据我所知,一个alloc操作(不是吗?)我没有看到需要释放对象,但是由于乐器在抱怨,我添加了几行
[myColor release]
Run Code Online (Sandbox Code Playgroud)
使用变量后,取悦野兽.
这样做会有问题吗,比如崩溃什么的?
显然这样做是解决问题,但我不习惯发布一个没有分配的对象.
你怎么看?
谢谢.
我想这是一个xcode问题或框架泄漏.为了证明我用替换线
UIColor *myColor = [[UIColor alloc] initWithRed:corR green:corG blue:corB alpha:1.0];
Run Code Online (Sandbox Code Playgroud)
然后可以安全地释放对象......
这样做,解决了问题.
不要释放对象,你不拥有它,你最终会崩溃.UIColor可能只是为你缓存这些颜色,而且仪器无法知道这一点,因此它将它们报告为泄漏(基本上是创建的东西,你没有引用,但还没有被释放).
尝试运行仪器一段时间(使用模拟器),然后发送内存警告,看看UIColor是否会清除其缓存.无论哪种方式,都没有什么可以真正解决核心框架内发生的泄漏,所以不要尝试.只是确保你实际上并没有以某种方式泄漏它们(比如在某些时候保留它们并且从不释放它们).
| 归档时间: |
|
| 查看次数: |
4110 次 |
| 最近记录: |