documents協(xié)議是訪問(wèn)應(yīng)用程序目錄下的文件,如果要訪問(wèn)resources里面的圖片,則可以使用bundle協(xié)議。
摘要: KVO簡(jiǎn)而言之就是:基于鍵值的觀察者,實(shí)際上就是觀察者模式。
Cocoa Framework已經(jīng)為我們提供了這一模式,不需要我們自己來(lái)實(shí)現(xiàn)了。我們只需要按照約定的方式去做就可以了。KVO主要用于用戶界面交互,當(dāng)多個(gè)View共同使用了同一個(gè)實(shí)體,當(dāng)這個(gè)實(shí)體中的某個(gè)屬性改變時(shí),如果需要更新多個(gè)界面,KVO的作用就發(fā)揮出來(lái)了。
閱讀全文
摘要: iOS開(kāi)發(fā)的中文資料較少,一些有價(jià)值的資料和網(wǎng)站或博客大都是英文的。這些收集了一些鏈接,方便自己查看,也方面他人。 閱讀全文
對(duì)象之間進(jìn)行通信最基本的方式就是消息傳遞,在Cocoa中提供Notification Center機(jī)制來(lái)完成這一任務(wù)。其主要作用就是負(fù)責(zé)在任意兩個(gè)對(duì)象之間進(jìn)行通信。使用方法很簡(jiǎn)單,如下幾個(gè)步驟即可:
假設(shè)A與B之間進(jìn)行通信,B來(lái)觸發(fā)事件,A接受該事件,并作出響應(yīng)。
1) A編寫(xiě)自定義的消息響應(yīng)函數(shù)update
2) A向消息中心注冊(cè),[NSNotificationCenter defaultCenter] addObserver: self selector:@selector(update) name:@"update" object:nil]
3) B觸發(fā)事件[[NSNotificationCenter defaultCenter] postNotificationName:@"update" object:nil]
每一個(gè)進(jìn)程都有一個(gè)默認(rèn)的NSNotificationCenter,可以通過(guò)類方法defaultCenter獲取該消息中心的實(shí)例。消息中心可以處理同一進(jìn)程中不同對(duì)象之間的消息。如果要在同一臺(tái)機(jī)器上進(jìn)行進(jìn)程間的通信,需要使用NSDistributedNotificationCenter。
消息中心以同步的方式將消息分發(fā)到所有的觀察者中,換言之,直到所有的觀察者都收到消息并處理完畢以后,控制權(quán)才會(huì)回到調(diào)用者的手里。如果需要異步的處理消息,需要使用通知隊(duì)列NSNotificationQueue。
在多線程程序中,通知會(huì)被分發(fā)到每一個(gè)發(fā)起消息的線程中,這可能與觀察者注冊(cè)時(shí)所在的線程已經(jīng)不是同一線程。
摘要: Opencv使用過(guò)程中總結(jié)的一些經(jīng)驗(yàn) 閱讀全文
6月18日京東搞活動(dòng),圖書(shū)買(mǎi)100減50,和同事一起合伙買(mǎi)了一批書(shū),到今天快一個(gè)月了,基本天天都會(huì)去看下訂單狀態(tài)。
很神奇,這個(gè)訂單狀態(tài)變化無(wú)常。今天這個(gè)書(shū)明明已經(jīng)有貨,明天突然就變成無(wú)貨了,要么預(yù)訂狀態(tài),要么在途。
7月9日,最后一次更新訂單狀態(tài),當(dāng)時(shí)只有一本書(shū)處于“在途”狀態(tài),其他所有都已經(jīng)是“現(xiàn)貨”狀態(tài),很高興,等了20天以為終于要拿到書(shū)了。沒(méi)想到啊,大清早的來(lái)查看一下訂單狀態(tài)。扯比的狀態(tài)讓我無(wú)語(yǔ):

然后就是本來(lái)只有一本書(shū)處于“在途”狀態(tài),現(xiàn)在增加了一本處于“預(yù)訂”狀態(tài),還有一個(gè)處于無(wú)法到貨的狀態(tài)。跟客服打電話說(shuō),客服說(shuō)可以有貨先發(fā)。前兩天還是有個(gè)“有貨先發(fā)”的按鈕,現(xiàn)在可好,連這個(gè)按鈕都沒(méi)有了。根本無(wú)法操作。如下圖:

我只能苦笑,后悔啦!京東搞個(gè)活動(dòng)就把自己搞的不行了,客服被客人打電話說(shuō)的高潮迭起,買(mǎi)書(shū)的人問(wèn)候京東祖宗好幾代。
京東想做大做強(qiáng),還有相當(dāng)?shù)木嚯x要走啊。只希望我這個(gè)訂單能夠趕快處理完,阿門(mén)!
摘要: centos 5.6編譯opencv 2.2 遇到的python錯(cuò)誤的解決辦法以及如何升級(jí)centos 默認(rèn)的python版本2.4.3到2.6.5或更高。
閱讀全文
摘要: 今天工作需要寫(xiě)一個(gè)小的網(wǎng)絡(luò)應(yīng)用程序,計(jì)劃使用python + zeromq。
zeromq是一個(gè)并行開(kāi)發(fā)框架的socket庫(kù),提供進(jìn)程內(nèi)、進(jìn)程間和廣播方式的消息通訊。在多對(duì)多的網(wǎng)絡(luò)環(huán)境中提供多對(duì)一、發(fā)布/訂閱、管道、請(qǐng)求/響應(yīng)等網(wǎng)絡(luò)通信模型。
對(duì)可擴(kuò)展的多核消息傳遞應(yīng)用程序提供異步I/O支持。擁有多種開(kāi)發(fā)語(yǔ)言的綁定,支持絕大多數(shù)操作系統(tǒng),還有很重要的一點(diǎn)就是:開(kāi)源,免費(fèi)。 閱讀全文
Android NDK從r5b版本開(kāi)始有官方支持的STL了,有一個(gè)crystax版本早已經(jīng)支持。官方的支持有兩個(gè)版本一個(gè)是gnu的,一個(gè)是stlport。如果你需要在你的NDK程序中使用STL,那么需要在Application.mk文件中添加一個(gè)選項(xiàng),就是APP_STL := stlport_static。 其中APP_STL的取值有以下四種:
system --> 系統(tǒng)默認(rèn)的最小支持的C++運(yùn)行時(shí)庫(kù)
stlport_static --> 以靜態(tài)鏈接的方式使用stlport版本的STL
stlport_shared --> 以動(dòng)態(tài)鏈接的方式使用stlport版本的STL
gnustl_static --> 以靜態(tài)鏈接的方式使用gnu版本的STL
如果你和我一樣并沒(méi)有使用Android.mk和Application.mk,而是使用Code::Blocks或者Visual studio 2010,那么在配置環(huán)境時(shí),如果需要STL的支持,那么就需要注意自己要指定stl的包含路徑。鏈接就根據(jù)需要自己鏈接不同的版本。請(qǐng)注意,stlport有靜態(tài)鏈接和動(dòng)態(tài)鏈接兩種方式,而gnu的僅有靜態(tài)鏈接方法。
另外一個(gè)需要注意的就是官方提供的這個(gè)stlport版本不支持RTTI和異常,換言之,如果你使用了stlport版本的STL,則不能使用-fexceptions和-frtti這兩個(gè)編譯選項(xiàng)。