documents协议是访问应用程序目录下的文件,如果要访问resources里面的图片,则可以使用bundle协议。
摘要: KVO简而言之就是:基于键值的观察者,实际上就是观察者模式。
Cocoa Framework已经为我们提供了这一模式,不需要我们自己来实现了。我们只需要按照约定的方式去做就可以了。KVO主要用于用户界面交互,当多个View共同使用了同一个实体,当这个实体中的某个属性改变时,如果需要更新多个界面,KVO的作用就发挥出来了。
阅读全文
摘要: iOS开发的中文资料较少,一些有价值的资料和网站或博客大都是英文的。这些收集了一些链接,方便自己查看,也方面他人。 阅读全文
对象之间进行通信最基本的方式就是消息传递,在Cocoa中提供Notification Center机制来完成这一任务。其主要作用就是负责在任意两个对象之间进行通信。使用方法很简单,如下几个步骤即可:
假设A与B之间进行通信,B来触发事件,A接受该事件,并作出响应。
1) A编写自定义的消息响应函数update
2) A向消息中心注册,[NSNotificationCenter defaultCenter] addObserver: self selector:@selector(update) name:@"update" object:nil]
3) B触发事件[[NSNotificationCenter defaultCenter] postNotificationName:@"update" object:nil]
每一个进程都有一个默认的NSNotificationCenter,可以通过类方法defaultCenter获取该消息中心的实例。消息中心可以处理同一进程中不同对象之间的消息。如果要在同一台机器上进行进程间的通信,需要使用NSDistributedNotificationCenter。
消息中心以同步的方式将消息分发到所有的观察者中,换言之,直到所有的观察者都收到消息并处理完毕以后,控制权才会回到调用者的手里。如果需要异步的处理消息,需要使用通知队列NSNotificationQueue。
在多线程程序中,通知会被分发到每一个发起消息的线程中,这可能与观察者注册时所在的线程已经不是同一线程。
摘要: Opencv使用过程中总结的一些经验 阅读全文
6月18日京东搞活动,图书买100减50,和同事一起合伙买了一批书,到今天快一个月了,基本天天都会去看下订单状态。
很神奇,这个订单状态变化无常。今天这个书明明已经有货,明天突然就变成无货了,要么预订状态,要么在途。
7月9日,最后一次更新订单状态,当时只有一本书处于“在途”状态,其他所有都已经是“现货”状态,很高兴,等了20天以为终于要拿到书了。没想到啊,大清早的来查看一下订单状态。扯比的状态让我无语:
然后就是本来只有一本书处于“在途”状态,现在增加了一本处于“预订”状态,还有一个处于无法到货的状态。跟客服打电话说,客服说可以有货先发。前两天还是有个“有货先发”的按钮,现在可好,连这个按钮都没有了。根本无法操作。如下图:
我只能苦笑,后悔啦!京东搞个活动就把自己搞的不行了,客服被客人打电话说的高潮迭起,买书的人问候京东祖宗好几代。
京东想做大做强,还有相当的距离要走啊。只希望我这个订单能够赶快处理完,阿门!
摘要: centos 5.6编译opencv 2.2 遇到的python错误的解决办法以及如何升级centos 默认的python版本2.4.3到2.6.5或更高。
阅读全文
摘要: 今天工作需要写一个小的网络应用程序,计划使用python + zeromq。
zeromq是一个并行开发框架的socket库,提供进程内、进程间和广播方式的消息通讯。在多对多的网络环境中提供多对一、发布/订阅、管道、请求/响应等网络通信模型。
对可扩展的多核消息传递应用程序提供异步I/O支持。拥有多种开发语言的绑定,支持绝大多数操作系统,还有很重要的一点就是:开源,免费。 阅读全文
Android NDK从r5b版本开始有官方支持的STL了,有一个crystax版本早已经支持。官方的支持有两个版本一个是gnu的,一个是stlport。如果你需要在你的NDK程序中使用STL,那么需要在Application.mk文件中添加一个选项,就是APP_STL := stlport_static。 其中APP_STL的取值有以下四种:
system --> 系统默认的最小支持的C++运行时库
stlport_static --> 以静态链接的方式使用stlport版本的STL
stlport_shared --> 以动态链接的方式使用stlport版本的STL
gnustl_static --> 以静态链接的方式使用gnu版本的STL
如果你和我一样并没有使用Android.mk和Application.mk,而是使用Code::Blocks或者Visual studio 2010,那么在配置环境时,如果需要STL的支持,那么就需要注意自己要指定stl的包含路径。链接就根据需要自己链接不同的版本。请注意,stlport有静态链接和动态链接两种方式,而gnu的仅有静态链接方法。
另外一个需要注意的就是官方提供的这个stlport版本不支持RTTI和异常,换言之,如果你使用了stlport版本的STL,则不能使用-fexceptions和-frtti这两个编译选项。