摘要 iOS 中图像的表现形式不只是 Image,还有更加底层的方式,比如 CVPixelBuffer 像素缓存形式,那么 CGImage 就可以转换为像素缓存的方式也是需要了解的. CGImage 苹果官方解释是一张 bitmap 图像或者图像 mask.它是 UIImage 类中的一个属性,并可以通过 UIImage 的初始化函数称为一个 Image 对象. CVPixelBuffer 是核心缓存像素对象的引用,这里存储着一张图像. 在需要 CVPixelBuffer 对象的应用场景中,可以…
上一篇介绍了如何给未检查异常快速增加try/catch语句,这里在补充一点其他相关操作.有时候我们增加了try/catch之后还需要在加一个finally块,比如android上每次分配一个cursor最好在代码末尾增加finally块,在其中关闭cursor防止内存泄露.android上cursor总共可占用内存的大小是2M,如果哪个应用的高频方法没有及时关闭cursor的话,会造成其它模块都无法分配cursor的严重后果.下面我们就介绍如何增加finally块的快捷操作. 步骤一:基于上一篇…
十九.  和系统运行进程相关的Shell命令:       1.  进程监控命令(ps):    要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结束.进程有没有僵死.哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的.    ps命令存在很多的命令行选项和参数,然而我们最为常用只有两种形式,这里先给出与它们相关的选项和参数的含义: 选…
任何一门语言都有属性的概念.Swift中的属性是怎么的呢? 一.属性 Swift中跟实例相关的属性可以分为2大类:存储属性和计算属性. 1.1. 存储属性(Stored Property) 特点: 类似于成员变量的概念: 存储在实例的内存中: 结构体.类可以定义存储属性: 枚举不可以定义存储属性. 示例代码: struct Circle { var radius: Double } class classCircle { var radius: Double } 关于存储属性,Swift有个明确…
一 两个数字交换算法 1.算法1 func swap(inout num1:int , inout num2:int){ num1 = num1 ^ num2 ; num2 = num1 ^ num2 ; num1 = num1 ^ num2 ;} var a = 20 var b = 10 swap(&a, &b) 2.算法2 func swap(inout num1:int , inout num2:int){ num1 = num1 + num2 ; num2 = num1 - nu…
DataGridView,DataGridViewColumn,DataGridViewRow,DataGridViewCell有ContextMenuStrip属性.可以通过设置ContextMenuStrip对象来控制DataGridView的右键菜单的显示. DataGridViewColumn的ContextMenuStrip属性设定除了列头以外的单元格的右键菜单. DataGridViewRow的ContextMenuStrip属性设定除了行头以外的单元格的右键菜单. DataGrid…
在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux Shell的系列博客就给予了我极大的帮助,然而在实际的使用中却发现,有的时候确实忘记了某个技术点或某个Shell命令的使用方式曾经在哪一篇博客中予以了说明,所以不得不多次点击多篇博客,直到找到想要那篇的为止,鉴于此,为了方便我们每个人的查阅,这里特别给出了前十二篇系列博客的目录以供大家参阅和查找.…
前言:多数人在使用Google搜索的过程是非常低效和无谓的,如果你只是输入几个关键词,然后按搜索按钮,你将是那些无法得到Google全部信息的用户,在这篇文章中,Google搜索专家迈克尔.米勒将向您展示如何更智能.更高效地进行Google的系列搜索. Google是一个非常精密成熟的搜索引擎,但大多数的用户都没有能完全地利用到它的能力.一般人就是在Google的搜索框中输入一两个关键字,然后点击“搜索”按钮,等着Google显示出它第一页的搜索结果.这是一个相当简单模式匹配算法的搜索,不幸的是…
Linux Shell常用技巧(一) http://www.cnblogs.com/stephen-liu74/archive/2011/11/10/2240461.html一. 特殊文件: /dev/null和/dev/tty二. 简单的命令跟踪三. 正则表达式基本语法描述四. 使用cut命令选定字段五. 计算行数.字数以及字符数六. 提取开头或结尾数行 Linux Shell常用技巧(二) http://www.cnblogs.com/stephen-liu74/archive/2011/1…
九宫格的创建是有规律可循的,每一个格子的水平和竖直方向的间隔是固定的,通过计算每一个格子的位置,然后把它们依次放到视图中即可. 一般的步骤为: 1.设置格子的总个数和每一列的格子数 2.求格子的间隔: 水平间隔 = (视图总宽-每一个格子的宽*列数)/(列数+1) 竖直间隔 =  水平间隔 3.通过for循环,依次创建所有的格子并设置相应的图片,并且对每一个格子的位置进行设置 具体的实例如下: //创建项目工程,名称为九宫格--swift //导入九张图片素材,文件截图为: //在ViewCon…