SQLite是MySQL的簡化版,更多的運用與行動裝置或小型裝置上。SQLite的優點是具有可移植性,它不需要伺服器就能運行,同時,它也存在一些缺陷,首先,沒有提供簡單的資料庫建立方式,必須手工建立資料庫,其次,SQLite沒有物件導向介面,必須使用依賴於C語言代碼的API。相對於OC,這套API既不那麼優雅,也更難使用。當相比於用檔案進行儲存,還是更推薦使用SQLite進行資料存放區。 下面來看下如何使用SQLite 工程目錄如下: 首先建立一個Single
讀取檔案內容到NSString,我使用以下代碼[cpp] NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"push實現.txt"]; NSError*
大部分的時候NSString的屬性都是copy,那copy與strong的情況下到底有什麼區別呢? 比如:@property (retain,nonatomic) NSString *rStr;@property (copy, nonatomic) NSString *cStr; - (void)test:{ NSMutableString *mStr =
print?<PRE class=plain name="code">@interface NSObject (NSDelayedPerforming) - (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay inModes:(NSArray *)modes; -
1、常見的NSFileManager檔案方法-(NSData *)contentsAtPath:path //從一個檔案讀取資料-(BOOL)createFileAtPath: path contents:(NSData *)data attributes:attr //向一個檔案寫入資料-(BOOL)removeItemAtPath:path error:err //刪除一個檔案-(BOOL)moveItemAtPath:from toPath:to
這篇文章將只介紹一下將內容緩衝到記憶體中,下一篇文章就介紹一下在iOS磁碟上緩衝內容。使用緩衝的目的是為了使用的應用程式能更快速的響應使用者輸入,是程式高效的運行。有時候我們需要將遠程web伺服器擷取的資料緩衝起來,減少對同一個url多次請求。記憶體緩衝我們可以使用sdk中的NSURLCache類。NSURLRequest需要一個緩衝參數來說明它請求的url何如快取資料的,我們先看下它的CachePolicy類型。1、NSURLRequestUseProtocolCachePolicy
1 前言使用Quartz 2D繪圖時候,我們常會用到UIView的子類,想該類的drawRect:方法中添加Quartz函數調用。每次需要重繪視圖時候都會調用該方法。2 詳述在Quartz 2D中,和其他Core Graphics中一樣,繪圖是在圖形上下文中進行的,通常,只稱上下文。繪圖時候,我們需要檢索當前上下文,使用此上下文進行各種Quartz圖形調用,並且讓此上下文負責將圖形呈現到視圖上。下面代碼將檢索當前上下文:CGContextRef context =
1:簡單說說 IOS 中 MVC 結構2; IOS 的支援響應機制, Model 不允許和Controller ,View 打交道,也就是Model 根本不知道誰會用自己,Model 中不能有任何對Controller 和View 的引用, 當Model 的資料變了,怎麼通知視圖更新呢? 常用的機制是廣播模式,電台模式,或者事件機制 在IOS 中有兩種支援機制:Notification
UIImage的縮小有時候,項目中,要用到上傳圖片,從圖片庫裡取出的圖片有的太大了,而要上傳的時候,會很費時間,而且也沒必要太大,所以就把圖片綜縮小一下,再傳![cpp]#pragma UIImagePickerDelagate -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image
1 前言對象引用了同一類型的另一個對象,形成一條鏈。鏈中的每個對象實現了童顏的方法,處理對鏈中第一個對象發起的同一個請求。如果第一個對象不是知道如何處理請求,它就把請求傳給下一個響應器。2 詳述2.1 簡述十多個對象昂都有機會處理請求,從而避免請求的寄件者和接受者之間發生耦合。此模式將這些對象連城一條鏈,並沿著這條鏈傳遞請求,直到有一個對象處理它為止。2.2 何時使用(1)有多個對象可以處理請求,而處理常式只有在運行時才能確定。(2)向一組對象發出請求,而不想顯示指定處理請求的特定處理常式。3
在視圖控制器上,觸摸textfield,開啟的不是虛擬鍵盤,也不是datepicker,也不要actionsheet,要一個類似html上的日曆輸入框。這類控制項有很多開源的,但目標不是我想要的。參考kal,自己實現了一個這類功能的行事曆檢視。行事曆檢視以自訂視圖的方式實現,再add到視圖控制器的view上,最後通過行事曆檢視的delegate將自身remove掉。在textFiled的- (BOOL)textFieldShouldBeginEditing:(UITextField
demo功能:ios 在一定範圍隨機選取demo,如截屏。在點擊按鈕的時候,程式會根據按鈕選項的範圍隨機抽取一個選項顯示。iphone 6.1測試通過。demo說明:項目demo中 MainView.m裡是主要代碼。利用rand()來產生隨機數。rand()的作用是隨機返回一個類型為int的整數,其範圍是0到RAND_MAX。demo截屏: demo主要代碼:<STRONG xmlns="http://www.w3.org/1999/xhtml"&
情境:一個彈出層,包含一個Tableview,每一行為一個選擇條件,且只能選擇一個。選中後文體有顏色變化,後面還會有對勾。選擇另一個後,前一個恢複成普通狀態。 範例程式碼: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {int newRow = [indexPath row];int oldRow = [lastIndexPath
發起: 回調方法時間: 1、接收完HTTP協議頭,開始真正接手資料時候調用,一般在這個方法裡初始化一些儲存資料的對象如NSMutableData;- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response2
.h檔案中 @property(strong ,nonitomic) UIWebView * webView; .m檔案中 -(void)viewDidLoad{ self.webview = [[UIWebView alloc]initWithFormat:CGRectmake(0,0,320,480)]; [self.view
1.刪除:- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{ if (editingStyle == UITableViewCellEditingStyleDelete) &
//初始化label UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];//設定自動行數與字元換行[label setNumberOfLines:0]; label.lineBreakMode = UILineBreakModeWordWrap; // 測試字串 NSString *s =
一 :方法介紹1.+ (id)fileHandleForReadingAtPath:(NSString *)path;開啟一個檔案準備讀取 2.+ (id)fileHandleForWritingAtPath:(NSString *)path; 開啟一個檔案準備寫入 3.+ (id)fileHandleForUpdatingAtPath:(NSString *)path; 開啟一個檔案準備更新 (讀取。寫入) 4.- (NSData
// 如果要實現在應用裡面跳到appstore的對應評論頁面裡面的話,只要將下面地址中App_ID替換成自己的id就可以了,其他的地方都不用管。 // 如果要用Safari瀏覽器做實驗的話可以將地址中的 "itms-apps://" 替換成"http://"即可。 // 另外也可以嘗試地改變其中幾個參數的數值,可以看看結果。 // 注意:
好,上一篇咱們講到了在UILabel上產生一個剪貼簿,這篇咱寫寫一寫在UITableView上實用剪貼簿的兩種方法;一:在自訂cell裡面使用 其實,在cell的使用跟在label裡面的用法基本一樣1.放方法:- (BOOL)canBecomeFirstResponder{ return YES;}- (BOOL)canPerformAction:(SEL)action withSender:(id)sender{