Time of Update: 2018-12-08
基於訊息的GUI構架在過去的日子中,大部分程式設計語言平台的GUI構架幾乎沒有發生變化。雖然在細節上存在一些差異,比如在功能和編程風格上,但大部分都是採用了相同的構架來響應使用者輸入以及重新繪製螢幕。這種構架可以被總結為“單線程且基於訊息”。 Message msg;While(GetMessage(msg)){ TranslateMessage(msg);
Time of Update: 2018-12-08
iOS開發,最鬱悶的莫過於程式毫無徵兆地就崩潰了,用bt命令打出調用棧,給出的是一堆系統EXC_BAD_ACCESS的資訊,根本沒辦法定位問題出現在哪裡。 首先說一下 EXC_BAD_ACCESS 這個錯誤,可以這麼說,90%的錯誤來源在於對一個已經釋放的對象進行release操作。舉一個簡單的例子來說明吧,首先看一段Java代碼:複製代碼 代碼如下:public class Test{ public static void main(String[] args){ String s =
Time of Update: 2013-11-16
在上一篇的學習中,我們知道了如何為一個App添加它的Settings設定項,在Settings設定項中我們可以添加哪些類型的控制項,這些控制項都是通過一個plist來進行管理的,我們只需對plist進行修改添加,就可以映射到Settings中。但是在上一篇中,我們並沒有學習Settings和App的互動,在這一篇中我們將進行學習,如何在一個App中讀取Settings中的值,如何在App中修改Settings中的值,好了,下面開始我們這次的學習。1)NSUserDefaultsNSUserDef
Time of Update: 2013-11-16
JSONModel是一個解析伺服器返回的Json資料的庫。通常伺服器傳回的json資料要通過寫一個資料轉換模組將NSDictionary轉換為Model,將NSString資料轉換為Model中property的資料類型。這樣伺服器如果要做修改,可能需要改兩三個檔案。JSONModel的出現就是為了將這種解析工作在設計層面完成。使用方法:參考串連對其源碼的核心部分JSONModel.m做了源碼閱讀,筆記如下:在函數中完成所有解析工作:如果有任何失誤或者錯誤直接返回nil。-()initWithD
Time of Update: 2013-11-16
文本資訊本地化在本地化工作中佔有很大的比例。包括了:應用程式名稱本地化、系統按鈕和資訊本地化,以及靜態文本資訊本地化。系統按鈕和資訊本地化還記得天氣預報應用背後的“完成”按鈕嗎,它在中文環境下是“完成”,在英語環境下是“Done”。還有一些系統給我們的提示資訊,串連藍牙裝置時的系統提示。它在中文環境下是中文提示,在英語環境下是英文提示。系統按鈕上的文本和系統提示資訊的文字我們都是不能修改的,但是如果我們不進行本地化的設定,即
Time of Update: 2013-11-16
當前的SVN版本已經升級到1.8.x了,但mac系統內建的以及xcode使用的SVN用戶端版本沒有跟著升級,還是1.6.x的版本。為瞭解決隱藏目錄.svn只在根目錄下存在的情況,至少要升級到1.7.x版本。本文的方法只支援svn1.7.x 暫時還不支援1.8版本的升級,後續持續更新。我的mac環境:mac 10.8.4 xcode 4.6.3 機器是 mac mini MD388 (關於型號有興趣到這裡查看)環境要求:需要在xcode裡安裝命令列工具。如所示:升級原理:
Time of Update: 2013-11-16
apple在ios5的時候提供了json的相關處理api,其中最主要的是NSJSONSerialization類。 + (BOOL)isValidJSONObject:( + (NSData *)dataWithJSONObject:()obj options:(NSJSONWritingOptions)opt error:(NSError ** + ()JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt
Time of Update: 2013-11-16
在 IOS 中,對 UIScrollView 的捲軸(ScrollBar Indicators)的自訂設定介面,一直都是很少的。除了能自訂簡單的樣式(UIScrollViewIndicatorStyle)和是否啟用外,對於 一直顯示捲軸、自訂捲軸(ScrollBar Indicators)的Width 、顏色等,都是不能很方便的設定的。 雖然不能很方便,但是還是能實現的。通過一天的努力,不斷的 google 和 overflow,終於找到了幾個比較完美的解決辦法。
Time of Update: 2013-11-16
IOS之同步請求、非同步請求、GET請求、POST請求 1、同步請求可以從網際網路請求資料,一旦發送同步請求,程式將停止使用者互動,直至伺服器返回資料完成,才可以進行下一步操作,2、非同步請求不會阻塞主線程,而會建立一個新的線程來操作,使用者發出非同步請求後,依然可以對UI進行操作,程式可以繼續運行3、GET請求,將參數直接寫在訪問路徑上。操作簡單,不過容易被外界看到,安全性不高,地址最多255位元組;4、POST請求,將參數放到body裡面。POST請求操作相對複雜,需要將參數和地址
Time of Update: 2013-11-16
最近因項目需要,在網上找了一些代碼,整合了一下,實現的效果就是將10進位的RGB色值轉換IOS用的UIColor,方法還有缺陷,有待改進 colorInt=(colorInt<**colorString16 = ( i = ; i<; i++=colorInt%=colorInt/ =; =; =; =; =; =;:nLetterValue=[[NSString alloc]initWithFormat:= (colorInt == = [[colorString16
Time of Update: 2013-11-16
項目中實現了一個可以多級展開的清單控制項。每次展開都是互斥的,就是說,展開一個cell 就會關閉其他展開的層。可以呈現的效果如。第一個圖片是應用中實現的效果。第二個是Demo中的效果。如果有新的需求。會在github上繼續維護。 這個控制項是3層的,就是Header
Time of Update: 2013-11-16
在互連網上關於Interface Builder的爭吵每天都在發生,用和不用大家都有一大堆的理由。最近看了這篇文章,很多地方和作者有共鳴,結合自己的一些經曆,就有了你現在所看到的東西,你可以把它當成前者的中文版。一年前我開始做iOS開發,看的是Stanford的CS
Time of Update: 2013-10-28
在訪問App Store的時候,使用者喜歡安裝和下載有吸引力的應用,但決定下載前使用者只能通過應用來判斷其吸引力和功能。如果現在你想自己設計一個應用,那你來對地方了,下面就是建立一個iPhone 應用的幾個建議和應該避免的錯誤。 1. 找到你的技術優勢 在開始設計任何流程圖前,你得找出你擅長的技術。例如準備開發一款移動遊戲應用,而你對設計介面不在行,就不要硬來。你應該建立一個你擅長、能發揮創造力的應用。 2.
Time of Update: 2013-10-28
//初始化textfield並設定位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //設定邊框樣式,只有設定了才會顯示邊框樣式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum {
Time of Update: 2013-10-28
基礎部分 1: 圖片記憶體大小小結 a: 圖片:是佔用記憶體的大戶,尤其是手機遊戲圖片資源眾多。對圖片資源在記憶體中佔用量的計算成為J2ME遊戲開發人員的經常性工作,CoCoMo來解釋一下如何計算圖片在記憶體中的佔用量:記憶體佔用量=寬*高*像素位元組數,其中像素位元組數因機型而異。 例如一張64*64的圖片在7210上的記憶體佔用量=64*64*1.5=6144(位元組)=6K、在S60上的記憶體佔用量=64*64*2=8192 (位元組)=8K。像素位元組數因機型而異,例如 721
Time of Update: 2013-10-28
這幾天在搞iphone上面一個應用的開發,裡面有需要網路攝影機/相簿編程和圖片上傳的問題,在這裡總結一下。 【部分知識】 iphone中映像通常儲存在4個地方【相簿、應用程式套件組合、沙箱、Internet】,通過這4個源,我們就可以存取應用圖片。 相簿 iphone的相簿包含網路攝影機菲林+使用者電腦同步的部分照片。使用者可以通過UIImagePickerController類提供的互動對話方塊來從相簿中選擇映像。但是,注意:相簿中的圖片機器路徑無法直接從應用程式訪問,只能通過終端
Time of Update: 2013-10-28
修改hosts 檔案內容: 進入etc 檔案夾,找到hosts 檔案,把該檔案複製出來,修改完裡面的內容後,先把etc中的hosts 檔案刪除,然後在把修改後的檔案離線去 可能需要管理員的密碼,你輸入你的登陸密碼就ok搞定了 有兩種辦法來實現顯示 Mac 下的隱藏檔案:命令列方式和軟體方式。 命令列方式:顯示/隱藏Mac隱藏檔案命令如下(注意其中的空格並且區分大小寫): 顯示Mac隱藏檔案的命令: defaults write com.apple.finder
Time of Update: 2013-10-28
多線程在各種程式設計語言中都是痛點,很多語言中實現起來很麻煩,objective-c雖然源於c,但其多線程編程卻相當簡單,可以與java相媲美。這篇文章主要從線程建立與啟動、線程的同步與鎖、線程的互動、線程池等等四個方面簡單的講解一下iphone中的多線程編程。 一、線程建立與啟動 線程建立主要有二種方式: - (id)init; // designated initializer - (id)initWithTarget:(id)target
Time of Update: 2013-10-28
- (void)modifyUA { id webView = [uiWebViewInstance valueForKeyPath:@"_internal.browserView._webView"]; [webView performSelector:@selector(setCustomUserAgent:) withObject:@"Mozilla/5.0 (Windows; U; Windows NT 5.2)
Time of Update: 2013-10-28
首頁完成改版,來提意見 iphone擷取地址的詳細資料 - (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate { if (self = [super init]) { // Custom initialization reverseGeocoder = [[MKReverseGeocoder alloc] initWithCoordinate:coordinate]; reverseGeocoder.