ios开发中的小常识

公司名称:深圳市明思联科科技有限公司

公司网址:http://www.mythlink.com

ios开发中的小常识

一非ARC的内存管理 

1、autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象。当用户的代码运行告一段落时,开始等待用户的操作,自动释放池就会被释放掉(调用dealloc),池中的对象都会收到一个release,有可能会因此被销毁。  

2、成员属性:   readonly:不指定readonly,默认合成gettersetter方法。外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全性。相当于私有成员?  assign:表示只进行简单的赋值,不会发送retain消息。  retain:会向旧值发送release消息,向新值发送retain消息。  copy:向旧值发release消息,向新值发送copy消息。  

3、引用计数特殊情况:   NSArray:当把一个对象添加到NSArray时,对象的引用计数会加1,移除时会减1  UIViewaddGestureRecognizer会对手势识别器的引用计数加1removeGestureRecognizer会减1  

二图形API  

1、Quartz2D的绘图总是发生在图形环境(Graphics Context)中

      视图会在调用drawRect:方法进行绘图之前,创建好图形环境,通过UIGraphicsGetCurrentContext函数来获得这个图形环境。  如果直接在图像或者PDF上绘图,需要调用CGBitmapContextCreate或者CGPDFContextCreate函数来创建图形环境。 

       Quartz2D绘图的基础元素是路径。路径可以是一些基础几何形状,也可以是这些几何形状的组合当需要创建一条路径时,应当调用CGContextBeginPath函数;   当需要将路径绘制的起点移动到一个位置时,应当调用CGContextMoveToPoint函数,当想绘制一条线段时,应当调用CGContextAddLineToPoint

       CTM(当前变换矩阵)将绘图从用户空间映射到设备控件。当图形环境刚刚创建时,CTM初始化为一个单位矩阵。对CTM进行平移变换应当调用CGContextTranslateCTM函数,进行旋转变换应当调用CGContextRotateCTM函数,进行缩放变换应当调用CGContextScaleCTM函数。

 2、UIBezierPath  

       使用UIBezierPath绘图的好处:采用系统坐标系  ,在Core Graphics的基础上封装,具有Core Graphics的主要功能,无需考虑图形环境。  UIBezierPath* pathLines = [UIBezierPath bezierPath];  [pathLines moveToPoint:point1]; // 移动到point1位置   [pathLines addLineToPoint:point2]; // 画一条从point1到point2的线  pathLines.lineWidth = 5.0; // 线宽   [UIColor redColor] set]; // 颜色设置  [pathLines stroke]; // 开始描绘   在同一UIBazierPath中,只能采用相同的颜色和线宽。   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值