Time of Update: 2018-12-04
開發iPad應用程式與iPhone有一點小差別,就是iPad支援彈出框。這個樣本展示如何在UIPopoverController上顯示一個UIPickerView,當然你可以顯示任何的UIView到UIPopover上面。原理就是構建一個UIViewController,然後將這個UIViewController加在UIPopoverController上,最近顯示UIPopoverController,即顯示出我們的UIViewController的內容。首先,要我們的controller支援
Time of Update: 2018-12-04
在上一篇文章裡我們寫了第一個驅動程式-HelloWorld, 今天我們來完善它,主要完成兩個功能:添加一個驅動裝置與給驅動添加預設派遣(IRP)。首先我們來完成第一個功能:添加一個驅動裝置。代碼如下: NTSTATUS CreateTheDevice(IN PDRIVER_OBJECT pDeviceObject){NTSTATUS status;PDEVICE_OBJECT pDevObj;UNICODE_STRING devName;UNICODE_STRING
Time of Update: 2018-12-04
選擇日期範圍,同時要判斷選擇的開始日期和結束日期的選擇是否正確//將字串轉為日期,為下一步比較- (NSDate*)stringToDate: (NSString*)string{ NSDateFormatter* dateFormatter = [ [ NSDateFormatter alloc ] init ]; [ dateFormatter setDateFormat: @"yyyy-MM-dd" ]; NSDate* date = [ dateFormatter da
Time of Update: 2018-12-04
最近遇到一個不可思議的問題,用CLLocationManager更新位置的時候會返回舊的位置資訊,這是為什麼呢,經過google才知道原來是它有一個cache的功能,所以會返回cache值。那返回給我們舊的值有何用,反而是個麻煩事,會讓annotationview在地圖上跳來跳去。如何解決這個問題,其實官方也說明了這種情況,也給出瞭解決方案, 下面就是官方的解決方案:- (void)locationManager:(CLLocationManager *)manager
Time of Update: 2018-12-04
開發過程當為了讓應用更絢,就加入一些動畫效果。CoreAnimation比較複雜,其實UIView的簡單動畫就可以滿足我們應用開發。UIView支援的動畫屬性有,frame, center, bounds,transform, alpha. 什麼意思呢,就是你可以修改這些屬性來完成動畫,比如設定frame,uiview就可以動了。下面看一段代碼: // begin the animations block: [UIView
Time of Update: 2018-12-04
自製tableview 中的段名//返回對應段的段名,即 小標題- (UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ UIView* customView = [ [ [ UIView alloc ] initWithFrame: CGRectMake( 10 , 0 , 300 , 45 ) ] autorelease ]; UILabel*
Time of Update: 2018-12-04
程式如果被其它程式啟動,那我們如何debug? xcode3在網上有人介紹了,請參見:http://oleb.net/blog/2010/05/how-to-debug-app-launched-by-remote-event/我在xcode3直試了一下,但沒有成功。不知何故,我mbp上裝有兩個版本的xcode, xcode3與xcode4.研究了一下,xcode4下卻能成功debug被pushNotification或custom URL scheme啟動的程式,首先開啟scheme
Time of Update: 2018-12-04
這次更新一個應用,上傳後第三天就收到了review的結果,結果是用了non-public api. 郵件裡只說了用了非公有api,並沒有說哪一個api, 幸好裡面有一個郵箱,可以索取現詳細的資訊,於是發了一封過去。 這一封回信才說明了哪個private api. 這下好辦了,把private換成public的就行了。我所用的private是UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];UIView
Time of Update: 2018-12-04
在開發中需要用UIActivityIndicatorView來顯示網路情況, 在模擬器上運行一點問題沒有,在iphone4上運行卻出現問題:如果UIActivityIndicatorView的style是UIActivityIndicatorViewStyleWhiteLarge,那麼在白色背景上是無法看到UIActivityIndicatorView的,iPhone 3GS, 3G都沒這個問題。最後解決的辦法就是,style用UIActivityIndicatorViewStyleGray,
Time of Update: 2018-12-04
在tableview中添加便捷按鈕“頂部”、“中間”、“底部”- (void)viewDidLoad{ //******************************************// //=================設定工具條增加三個快速上移、快速移動到中間、快速下移按鈕=========================// static const NSInteger dudaoBarButtonWidth = 90; //工具條按鈕
Time of Update: 2018-12-04
大名鼎鼎的Three20想必大家都聽說過,很多APP都是用它開發的,開發UI很方便,功能也很強大,用它就不必深究枯燥的iOS SDK。今天介紹一下如何在xcode4中配置環境支援Three20開發。1。首先我們得去把源碼下載下來。網址在:https://github.com/facebook/three20 解壓放在我們工程目錄下。2。在解壓目錄下src/Three20下的Three20.xcodeproj拖到自己的工程裡,在彈出的對話方塊中Destination欄“Copy Items
Time of Update: 2018-12-04
在上兩節,我們分別介紹了驅動與應用程式通訊的緩衝區與直接存取模式,今天介紹第三種方式。我們在上一節的代碼上做修改即可。首先修改ctl_code.h為#ifndef CTL_CODE#pragma message("\n \n-----------EXEģʽ . Include winioctl.h ") #include<winioctl.h> //CTL_CODE ntddk.h wdm.h #else #pragma message("-\n
Time of Update: 2018-12-04
受到女人的青睞,男人固然得意。若是個已婚女人,時常給你暗送“秋天的波菜”,那可要三思而行了。別以為什麼便宜你都能占,恰到好處,對她對己,都是綠色良藥。 ——控訴婚姻不幸,可憐巴巴 現象:她很願意單獨和你聊天。其實,男女朋友間拉拉家常,再正常不過了。她若經常對你說起家庭的痛苦與婚姻的不幸,話語間還略帶著對你的欣賞,那你就不能無動於衷了。她毫無保留地向你控訴丈夫的無能平庸,懶散邋遢,專橫跋扈,不解風情。在這個家中,她比“喜兒還喜兒”,她站在長城前,不用哭,那老牆都能倒。 解讀:首先,她對
Time of Update: 2018-12-04
1、洗碗 倆人吃完飯都不想洗碗,所以決定用猜拳方式決勝負,誰輸誰洗碗。但老婆耍賴,出拳時總比我慢一拍,我也不去揭穿她的詭計,只在洗碗時找有豁口的(或看著不值錢的)碗、盤子打碎一兩個,第三次她就不再讓我洗碗,但我得負責倒垃圾。 2、做早點 我跟老婆都有賴床的惡習,因此,常有起床後不吃早餐直奔單位的現象。為了培養老婆早起做早餐的優良品德,我早上醒來時,會在被窩裡將肚子裡積蓄一夜的廢氣很爽地放掉,炸得老婆花容失色,只好乖乖就範。我嘛,自然可以再賴上一會,然後從容不迫地起床用餐。 3、生氣 老婆生氣時會
Time of Update: 2018-12-04
現在Three20的擴充可以解析XML與json,但是實際用extThree20XML的時候,卻遇到一點小問題,按照Three20介紹的方法:https://github.com/facebook/three20/tree/master/src/extThree20XML 最後編譯的時候遇到warnings,
Time of Update: 2018-12-04
ASIHttpRequest是個很強大的網路程式庫,用它可以很簡單的進行網路開發,比如上傳下載,在它的官網已有詳細的教程教大家如何使用。今天我要說的是在Xcode4下如何配置,使其能用ASIHttpRequest這個開源庫。其實首頁上已有說明了,但是加入到工程中的源碼還要經過篩選,有點麻煩。我是將庫的所有源碼都回入到工程當中編譯。第一步:下載原始碼。第二步:將其原始碼拖入你的工程。第三步:添加需要的framework到工程,如:共需要加入6個動態庫:libxml, CFNetwork,
Time of Update: 2018-12-04
媽媽說過沒有人值得你為他哭,唯一值得你為他哭的那個人,永遠都不會讓你為他哭。 幸福像掉到沙發下面的一粒紐扣-----你專心找,怎麼也找不到,等你淡忘了,它自己就滾出來了。 快樂就像香水,灑在別人身上的同時,自己也會沾上一點。 一隻腳踩在紫羅蘭上它卻將香味留在了你的腳上------這就叫寬容。 離開我就別安慰我,要知道每一次縫補,那顆心都會遭遇穿刺的痛。 人生好比一隻杯子,杯中的水滿了就得施一半給人,待杯裡又滿了,再施一半。只有不斷地進,不斷地出,這隻杯子裡才會是活水,才會有價值。 你以為最酸的感
Time of Update: 2018-12-04
Block是ios 4的新東西,有了它,源碼的邏輯將更清楚,代碼的可讀性將提高。熟悉函數指標的朋友對Block不會感冒的,因為它們實質是一樣的,只是叫清一不樣。今天將實戰BLOCK,我們將封裝一個支援Block的UIActionSheet。好了廢話少說,直接上代碼:PLActionSheet.h#import <UIKit/UIKit.h>/** * A simple block-enabled API wrapper on top of UIActionSheet.
Time of Update: 2018-12-04
在本節中,我們學習在驅動中如何操作雙向鏈表:鏈表的建立,初始化,遍曆,刪除。驅動中有自己的鏈表接構,也有相專用的操作鏈結表函數,也可以用C/C++中自已實現的鏈表。驅動中的鏈表接構是:LIST_ENTRY操作鏈結表的主要API有:InitializeListHead 初始化鏈表IsListEmpty 判斷鏈表是否為空白InsertHeadList 從頭部插入InsertTailList 從尾部插入RemoveHeadList
Time of Update: 2018-12-04
在本節,我們將學習在核心模式下操作檔案,包括:建立,開啟,讀取,修改,檔案屬性讀取與修改。相關的API有:ZwCreateFile, ZwOpenFile, ZwReadFile, ZwWriteFile, ZwQueryInformationFile,ZwSetInformationFile, 它們對應的應用程的API就是去掉前面的Zw.核心模式操作檔案都需要先初始化一個OBJECT_ATTRIBUTES結構如OBJECT_ATTRIBUTES