美文网首页
iOS中内存管理的坑

iOS中内存管理的坑

作者: 小东邪啊 | 来源:发表于2017-08-22 13:33 被阅读0次

case 1 : 使用CIContext作为全局对象。渲染时一直报错。错误代码如下:

 if (ciContext == nil) {                                                    kCIContextOutputColorSpace : (__bridge id)rgbColorSpace}];
        EAGLContext *eaglContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
         ciContext = [CIContext contextWithEAGLContext:eaglContext options:@{kCIContextWorkingColorSpace : [NSNull null]}];
    }

    [ciContext render:ciImage toCVPixelBuffer:pixelBuffer bounds:cropRect colorSpace:nil];

cicontextError
原因:项目使用MRC,需要手动管理部分对象内存,由于OC中一般对象初始化后系统内部会自行retain,如NSString,UIImage... 它们只需要完成自己对应初始化方法,但是CIContext初始化方法中并未实现将CIContext对象retain,所以使用出错。
解决方案:初始化完成后手动retain.[ciContext retain]; 一般来说只要碰到如上图的情况在MRC项目中较多,往往是内存管理出了问题,因为众多OC对象无法一一记牢,但可以记住解决问题的模式。

相关文章

  • iOS中内存管理的坑

    case 1 : 使用CIContext作为全局对象。渲染时一直报错。错误代码如下: 原因:项目使用MRC,需要手...

  • iOS 内存管理 部分三

    主要讲解日常开发中定时器的选择; iOS 内存管理 部分一iOS 内存管理 部分二iOS 内存管理 部分三i...

  • OC中内存管理

    在OC中内存管理MRC手动内存管理和ARC自动内存管理,ARC是从iOS 4.0开始,在iOS 4.0之前...

  • iOS之从MRC到ARC内存管理详解

    概述 在iOS中开发中,我们或多或少都听说过内存管理。iOS的内存管理一般指的是OC对象的内存管理,因为OC对象分...

  • iOS内功篇:内存管理

    iOS内功篇:内存管理 iOS内功篇:内存管理

  • ios内存管理

    ios内存管理 一.前言 在ios中,系统对每个程序运行时内存的占有...

  • iOS/OS X内存管理(二):借助工具解决内存问题

    上一篇博客iOS/OS X内存管理(一):基本概念与原理主要讲了iOS/OSX 内存管理中引用计数和内存管理规则,...

  • iOS总结内存管理

    说到iOS的内存管理,需要明白如下几个问题: 1、iOS内存管理的机制 内存管理是程序设计中很重要的一部分,程序在...

  • OC语法_IOS内存管理

    目录: 1、内存的定义 2、内存管理的基础概念 3、IOS系统中的内存管理 1、内存的定义 1.1. 内存是计算...

  • iOS夯实:ARC时代的内存管理

    iOS夯实:ARC时代的内存管理 iOS夯实:ARC时代的内存管理

网友评论

      本文标题:iOS中内存管理的坑

      本文链接:https://www.haomeiwen.com/subject/amgkdxtx.html