摘要: 常用的正则表达式集合:验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9]*)$验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$验证有1-3位小数的正实... 阅读全文
posted @ 2014-06-04 21:10 jiangmingz 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1... 进行操作在更改文件后 进行提交 提示Everything up-to-date ,改动后有没运行 git add -A,然后 git commit -m "edit " ,最后才push 切换到工程所在目录执行git init, 初始化一个仓库接着执行 git add 命令,由于没有忽略的... 阅读全文
posted @ 2014-03-03 11:34 jiangmingz 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 更新Pod到最新版本You can check your current version:pod --version0.28.0Since CocoaPods is a ruby gem you can update it, and all other installed gems, just by... 阅读全文
posted @ 2014-01-16 21:38 jiangmingz 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 1、指针的初始化指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变量,并没有间接取值的意思。例如:int a = 25;int *ptr = &a;int b[10];int *point = b; int *p = &b[0];如果:int *p; *p = 7;则编译器(vs2008)会提示The variable 'p' is being used without being initialized.即使用了未初始化的变量p。因为p 阅读全文
posted @ 2013-12-10 10:50 jiangmingz 阅读(603) 评论(0) 推荐(0) 编辑
摘要: Dispatch group用来阻塞一个线程,直到一个或多个任务完成执行。有时候你必须等待任务完成的结果,然后才能继续后面的处理。dispatch group也可以替代线程join。基本的流程是设置一个组,dispatch任务到queue,然后等待结果。你需要使用dispatch_group_async 函数,会关联任务到相关的组和queue。使用dispatch_group_wait等待一组任务完成。第一种用法dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispa 阅读全文
posted @ 2013-12-04 16:21 jiangmingz 阅读(1432) 评论(0) 推荐(0) 编辑
摘要: 创建一个文件夹为Go的工作空间,不能与安装文件夹是同一个目录$ mkdir $HOME/go$ export GOPATH=$HOME/go添加这个工作空间子目录($GOPATH/bin)到系统的$PATH环境里$exportPATH=$PATH:$GOPATH/bin来源http://nowhisky.diandian.com/post/2013-09-03/40052089756 阅读全文
posted @ 2013-10-21 11:15 jiangmingz 阅读(1195) 评论(0) 推荐(0) 编辑
摘要: TASK_RUNNING (运行) 进程是可执行的;它或者正在执行,或者在运行队列中等待执行。这是进程在用户空间种执行的唯一可能的状态;这种状态也可以应用到内核空间种正在执行的进程。TASK_INTERRUPTIBLE(可中断)进程正在睡眠,也就是说它被阻塞。等待某些条件的达成。一旦这些条件达成,内核就会把进程状态设置位运行。处于此状态的进程也会因为接受到信号而提前被唤醒并随时准备投入运行。TASK_UNINTERRUPTIBLE(不可中断)除了就算是接受到信号也不会被唤醒或者准备投入运行外,这个状态与可打断状态相同。这个状态通常在进程在必须在等待时不受干扰或者等待事件会发时生出现。由于处于此 阅读全文
posted @ 2013-09-30 14:23 jiangmingz 阅读(359) 评论(0) 推荐(0) 编辑
摘要: standard每次都会新建,每个Task都可以有,且每个Task都可以有多个实例(每个Task都可以有,且可以有多个)singleTop当前实例如果在栈顶,就不新建实例,调用其OnNewIntent。如不在栈顶,则新建实例(每个Task都可以有,且可以有多个,在栈顶时可复用)singleTask新建一个Task,如果已经有其他的Task并且包含该实例,那就直接调用那个Task的实例。(只有一个Task中会有)singleInstance新建一个Task,且在该Task中只有它的唯一一个实例。(只有一个Task会有,且该Task中只有它) “standard”和”singleTop”的act. 阅读全文
posted @ 2013-09-29 20:38 jiangmingz 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 当我们需要在一个图形上下文中构建一个路径时,我们需要调用CGContextBeginPath来标记Quartz。然后,我们调用函数CGContextMovePoint来设置每一个图形或子路径的起始点。在构建起始点后,我们可以添加直线、弧、曲线。记住如下规则:在开始绘制路径前,调用函数CGContextBeginPath;直线、弧、曲线开始于当前点。空路径没有当前点;我们必须调用CGContextMoveToPoint来设置第一个子路径的起始点,或者调用一个便利函数来隐式地完成该任务。如果要闭合当前子路径,调用函数CGContextClosePath。随后路径将开始一个新的子路径,即使我们不显示 阅读全文
posted @ 2013-09-21 22:31 jiangmingz 阅读(236) 评论(0) 推荐(0) 编辑
摘要: CGAffineTransform的结构如下struct CGAffineTransform {CGFloat a;CGFloat b;CGFloat c;CGFloat d;CGFloat tx;CGFloat ty;};typedef struct CGAffineTransform CGAffineTransform;它其实表示的是一个矩阵懂OpenGL的人,一看就明白了哈因为最后一列总是是(0,0,1),所以有用的信息就是前面两列对一个view进行仿射变化就相当于对view上的每个点做一个乘法结果就是基本上就是如果不看c和b的话a表示x水平方向的缩放,tx表示x水平方向的偏移d表示y垂 阅读全文
posted @ 2013-09-21 20:57 jiangmingz 阅读(416) 评论(0) 推荐(0) 编辑