摘要:
在最新的WWDC14上面,苹果发布了iOS8的一些新特性,而其中最让程序员兴奋的特性莫过于Extension,或者称之为Widget。下面就来尝鲜试验一把。一、Extension简介首先,苹果只支持下面这种类型的Extension Point,也不支持第三方应用自己设置Extension Point... 阅读全文
摘要:
通过创建ALAssetsLibrary 的实例可以访问系统Photos里的图片与视频。这个库包括了保存的图片,从iTunes导入的和从其他设备里面导入的图片,你可以访问所有的分类和保存图片视频。用普通的alloc和init就可以创建ALAssetsLibrary的实例,所有你从这个实例中获取得到的对象的生命周期和ALAssetsLibrary这个实例的生命周期一致。大多数的函数,都是异步处理的,所有的成功失败的回调都是使用block传入的,因为有可能需要用户点击授权。在iOS4至iOS5的版本中,会提示要访问用户的地理位置。到iOS6会提示访问用户的照片信息,这一点需要注意。可以遍历Group 阅读全文
摘要:
有两种方法:一,使用NSString的方法:NSString* string2 = [string1stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSString* string1 = [string2stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];二、使用CFStringRef的方法sUrl = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDe 阅读全文
摘要:
UIWebview 嵌入UITableview,将UIWebview 加入到UITableview的cell里面,而且,将UIWebview 的高度设为内容的高度,内容的高度,可以当UIWebview 载入完成之后,从UIWebview 的子view中找到scrollView,这个scrollview的contentSize的高度即为Webview的内容高度。另外一种方法是通过js,运行document.body.scrollHeight获取。最后一个问题就是UIWebView的滚动问题。 阅读全文
摘要:
在IOS中,UINavigationController在添加(push)与删除(pop)View的时候,会加入Slide的动画。有时候,在需要自己进行模拟这个动画的时候,会比较麻烦。通常,可以使用CATransition来使用Push效果,基本代码如下:CATransition *transition = [CATransition animation];transition.duration = 0.3f;transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEa. 阅读全文
摘要:
1、 充分利用现有的程序库,不做无用功(《linux编程思想》)。 2、 编写新的代码时,不重复编写一些相似的代码,而应该学习抽象思维,抽象可复用函数模块,提升程序的模块化、结构化3、 作为一个员工,假如涉及较多的重复编码的模块的。建议抽象成全组全部门通用的模块,形成部门积累。4、 做工作时,能自动化的地方多自动化。不能自动化的地方,多想想怎么流程化、规范化。(流程规范,事实上是把人当成是计算机硬件、流程规范当成是软件)5、 能设计可复用可配置的系统,代价不高的情况下,尽量这么设计。----有人喜欢说“快速迭代、敏捷”。 我觉得,这与程序员的效率并不矛盾。 参考第6点。6、 编写程序系统,是一 阅读全文
摘要:
最近由于工作需要,再读了一遍《正则表达式必知必会》,这样一本小书,很快读完了,对于正则表达式有更深的了解,的确很强大,值得学习。总结了一下,结果如下:正则表达式的两个用途:搜索和替换. 匹配任何一个单个的字符[] 字符集合区间- 连字符^ 取非匹配特殊元字符:[\b] 回退\f 换页符\n 换行符\r 回车符\t 制表符\v 垂直制表符\d 任何一个数字字符 [0-9]\D [^0-9]\w [a-zA-Z0-9_]\W [^a-zA-Z0-9_]\s [\f\n\r\t\v]\S [^\f\n\r\t\v]+ 匹配一个或多个字符* 匹配零个或多个字符? 匹配零个或一个字符{N} 精确匹配出现 阅读全文
摘要:
目标:在nginx模块中,创建变量,而且赋值 ,能够在配置文件中直接通过变量值获取值。1.在readconf阶段,插入变量值: 保存对应的index值,以后使用。 value[1]为变量的名字。 ngx_http_variable_t *v; ngx_int_t index; ngx_str_t *value; value = static_cast<ngx_str_t*>(cf->args->elts); v = ngx_http_add_variable(cf, &value[1] , NGX_HTTP_VAR_CHANGEABLE); if (v = 阅读全文
摘要:
大方法: 模块使用C++ 编译。 nginx服务器也需要使用C++编绎。1.在模块中,extern "C" {#include <ngx_config.h>#include <ngx_core.h>#include <ngx_http.h>}引入"C"模块。2.在objs/Makefile中,修改,CPP = g++LINK = $(CPP)其中,对于该模块,使用$(CPP)进行编绎。3.如果觉得麻烦,需要每次configure之后都要再修改的话,可以直接修改源码目录下 auto/make 里的CPP = g++LINK = g++和将# the add 阅读全文
摘要:
关于Nginx Http模块开发的文章非常少,只有Emiler的那篇关于Http模块的文章,但是那篇文章里面,并没有说到事件型的模块如何进行开发。而且文章里面提到的内容实在是让人有点意犹未尽。因此,对于Http事件型模块的开发进行了一些总结,与大家分享。但是,无论如何,要进行Nginx模块开发,最好的方法还是找到相似性较大的模块的代码进行参考,多试多看。通常,一个Http模块均是有以下的几个部分组成:1.模块配置结构体:(configure structure) 负责存储配置项的内容,每一条配置项,均会生成一个配置结构体,可以方便模块进行配置的预处理,存储相应的结构休内容,大致结构如下:* 阅读全文