<rp id="yy9qd"></rp>

    <em id="yy9qd"><ruby id="yy9qd"></ruby></em>

      <rp id="yy9qd"><object id="yy9qd"></object></rp>

    1. <th id="yy9qd"></th>

      ?

      iOS培訓之數據保持(三)

      作者:達內 更新時間:2013-12-30 11:44 來源:未知 點擊:
      嵌入式SQLite3 需要先導入sqlite3 的 api 或 framework。 1 #define kFilename @data.sqlite3 2 3 - (void)viewDidLoad 4 { 5 [super viewDidLoad]; 6 sqlite3 *database; 7 if(sqlite3_open([[self dataFilePath] UTF8String]。
      嵌入式SQLite3
      需要先導入sqlite3 的 api 或 framework。
       1 #define kFilename @"data.sqlite3"
       2  
       3 - (void)viewDidLoad
       4 {
       5     [super viewDidLoad];
       6 sqlite3 *database;
       7     if(sqlite3_open([[self dataFilePath] UTF8String], &database)!=SQLITE_OK)
       8      {
       9          sqlite3_close(database);
      10          NSAssert(0, @"Failed to open database");
      11      }
      12     
      13     NSString *createSQL=@"CREATE TABLE IF NOT EXISTS FIELDS"
      14                             "(ROW INTEGER PRIMARY KEY , FIELD_DATA TEXT);";
      15     char *errorMsg;
      16     if(sqlite3_exec(database, [createSQL UTF8String], NULL, NULL, &errorMsg)!=SQLITE_OK)
      17        {
      18            sqlite3_close(database);
      19            NSAssert(0, @"Error creating table: %s",errorMsg);
      20        }
      21     NSString *query=@"SELECT ROW, FIELD_DATA FROM FIELDS ORDER BY ROW";
      22     sqlite3_stmt *statement;
      23     if(sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)==SQLITE_OK)
      24     {
      25         while (sqlite3_step(statement)==SQLITE_ROW)  //移動位置指針
      26        {
      27             int row=sqlite3_column_int(statement,0);
      28             char *rowData=(char *)sqlite3_column_text(statement, 1);
      29             
      30             NSString *fieldName=[[NSString alloc] initWithFormat:@"field%d",row];
      31             NSString *fieldValue=[[NSString alloc] initWithUTF8String:rowData];
      32             UITextField *field=[self valueForKey:fieldName];
      33             field.text=fieldValue;
      34         }
      35         sqlite3_finalize(statement);
      36     }
      37     sqlite3_close(database);
      38                         
      39     
      40     UIApplication *app =[UIApplication sharedApplication];
      41     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillResignActive:) name:UIApplicationWillResignActiveNotification object:app];
      42 }
      43  
      44 -(void)applicationWillResignActive:(NSNotification *)notification;
      45 {
      46     sqlite3 *database;
      47     if(sqlite3_open([[self dataFilePath] UTF8String], &database)!=SQLITE_OK)
      48     {
      49         sqlite3_close(database);
      50         NSAssert(0, @"Failed to open database");
      51     }
      52     
      53     for (int i=1; i<=4; i++) {
      54         NSString *fieldName=[[NSString alloc] initWithFormat:@"field%d",i];
      55         UITextField *field=[self valueForKey:fieldName];
      56         
      57         char *updata="INSERT OR REPLACE INTO FIELDS (ROW, FIELD_DATA) VALUES(? , ?);";
      58         sqlite3_stmt *stmt;
      59         if (sqlite3_prepare_v2(database, updata, -1, &stmt, nil)==SQLITE_OK) {
      60             sqlite3_bind_int(stmt, 1, i);
      61             sqlite3_bind_text(stmt, 2, [field.text UTF8String],-1,NULL);
      62         }
      63         if(sqlite3_step(stmt)!=SQLITE_DONE)
      64         {
      65             NSAssert(0,@"Error updating table.");
      66         }
      67         sqlite3_finalize(stmt);
      68     }
      69     sqlite3_close(database);
      70 } 
      沙盒中的Documents文件夾生成data.sqlite3文件(未知直讀方法)。 
      學習有時就像剛才講述的知識一樣, 從開頭到最后都需要一個詳細的規劃過程,達內老師會為大家提供最優良的學習方法,為大家帶來不一樣的學習天地。 
      標簽:

      相關閱讀

      最新開班信息

      3G-IOS軟件工程師就業班
      北京潘家園中心 開課日期:9月29日
      3G-IOS軟件工程師就業班
      北京潘家園中心 開課日期:9月29日
      3G-IOS軟件工程師周末班
      北京潘家園中心 開課日期:9月29日
      3G-IOS軟件工程師周末班
      北京潘家園中心 開課日期:9月29日