在项目中的这个函数里面,[NSMutableArray array]与[[NSMutableArray alloc] init];有着较明显的区别

同样是建立一个NSMutableArray临时变量,为什么前者可以,后者在多次调用clearLastLine函数时会出错呢?

亟待解决!在TryIt.proj->FingerPaintView里面

- (void)clearLastLine {
    NSMutableArray *lastLine = [NSMutableArray array]; 
    if ([mDrawLines count] >= 1) 
    {
        lastLine = [mDrawLines objectAtIndex:[mDrawLines count]-1];
        [mRemovedLines addObject:lastLine];
        [mDrawLines removeLastObject];
        NSLog(@"%s:removed lines:%@",__FUNCTION__,mRemovedLines);
        mCurrentLine = nil;
        [self setNeedsDisplay];//系统会调用drawRect绘图
    }
}

/

- (void)clearLastLine {
    NSMutableArray *lastLine = [[NSMutableArray alloc] init]; 
    if ([mDrawLines count] >= 1) 
    {
        lastLine = [mDrawLines objectAtIndex:[mDrawLines count]-1];
        [mRemovedLines addObject:lastLine];

   [lastLine release];
        [mDrawLines removeLastObject];
        NSLog(@"%s:removed lines:%@",__FUNCTION__,mRemovedLines);
        mCurrentLine = nil;
        [self setNeedsDisplay];//系统会调用drawRect绘图
    }
}

本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/archive/2012/03/22/2411754.html,如需转载请自行联系原作者

【原】NSMutableArray的alloc、init方法与array的区别疑问相关推荐

  1. Objective-C中new与alloc/init的区别

    为什么80%的码农都做不了架构师?>>>    在实际开发中很少会用到new,一般创建对象我们看到的全是[[className alloc] init],但是并不意味着你不会接触到n ...

  2. 一、new与alloc init的区别

    源码: + new{id newObject = (*_alloc)((Class)self, 0);Class metaClass = self->isa;if (class_getVersi ...

  3. 数组的flat方法【Array.prototype.flat()】

    数组的flat方法[Array.prototype.flat()] 一. 概念   flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回. 二 ...

  4. numpy -- 基础方法操作 array和asarray数据类型常用基础方法

    numpy 基础知识 一.引入包 import numpy as np 二.基础方法 1. Array(数组) rank:数组的维数 a.ndim # 返回维度 a = np.array([1,2,3 ...

  5. ndarray 与 array 的区别 关系,所以ndarray是一个类对象,而array是一个方法

    ndarray 与 array 的区别 关系 置顶 wanglll* 2020-02-06 20:00:37  8455  已收藏 17 分类专栏: 数据分析 文章标签: numpy 版权 ndarr ...

  6. go/golang init()方法的调用

    go/golang main() init()方法的调用 u011156212 · 2015-10-20 13:00:05 · 9965 次点击 · 预计阅读时间 1 分钟 · 27分钟之前 开始浏览 ...

  7. Jquery源码中的Javascript基础知识(四)— jQuery.fn.init方法

    $() 即调用了jQuery.fn.init方法 jQuery = function( selector, context ) {return new jQuery.fn.init( selector ...

  8. IHttpModule.Init方法被执行多次的原因

    (http://www.csharpwin.com/dotnetspace/446.shtml) 发现不少朋友跟我一样,错把IHttpModule.Init拿来当做Application_Start的 ...

  9. 构造函数的理解(构造函数与 init 方法)

    0. 构造函数与 init 方法 构造方法内部禁止添加任何业务逻辑,如果有业务逻辑,请放在 init 方法中: 1. 构造函数的参数 以下为一个堆实现优先队列(堆的实现借助完全二叉树,而完全二叉树又可 ...

最新文章

  1. 姚班三兄弟3万块创业八年,旷视终冲刺港股
  2. 教程:9、网络通信工具
  3. Servlet简介与Servlet和HttpServlet运行的流程
  4. jQuery实现父窗口的问题
  5. h.264编码库x264实例
  6. 初学者学MvcMovie遇到的问题解决办法
  7. nssl1254-A(林下风气)【树形dp】
  8. 虚拟机本来有MySQL,后安装宝塔的MySQL导致MySQL不能启动报错
  9. ptyhon的列表与字典操作
  10. 第八届蓝桥杯第四题方格分割
  11. python资料-(转)python资料汇总(建议收藏)零基础必看
  12. 饿了么的架构设计及演进之路
  13. hashMap的具体实现
  14. Pronunciation Difference between /ʌ/ and /ɑ/
  15. 蓝牙防丢器原理和作用
  16. 全国哀悼日,我们也把博客灰一下吧
  17. 对不同角色用户设置不同的系统首页
  18. dat image 微信_微信Dat文件解码,PC微信加密图片解密工具
  19. 信用卡还款怎么分期,还款还是要技巧的
  20. python开发的项目管理软件_10 个超好用的免费开源项目管理软件

热门文章

  1. Hibernate配置详解
  2. vim的保存文件和退出命令
  3. Mac 下通过Keytool生成签名证书
  4. [转载]Mysql数据库千万级数据处理优化
  5. 2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)
  6. 兼容IE8,滚动加载下一页
  7. Tricky Sum
  8. 看职场老人教你如何平稳度过职场“更年期”
  9. 10.Facade-外观模式
  10. django-request对象