您現在的位置是:電腦技術吧?>? 編程技術 ??>??ios是誰開發的,ios用什么開發??>??正文詳情

ios是誰開發的,ios用什么開發

趙笑寒2019-12-20 15:02:22 人圍觀
簡介ios開發難嗎Fmdb是面向對象的。它以OC的形式封裝SQLite的C語言API。它使用方便,不需要太多的數據庫操作知識。但也存在一些問題,比如跨平臺。因為它是用OC語言封裝ios 開發教程

FMDB是面向對象的,它以OC的方式封裝了SQLite的C語言API,使用起來更加的方便,不需要過多的關心數據庫操作的知識。

但是它本身也存在一些問題,比如跨平臺,因為它是用oc的語言封裝的,所以只能在ios開發的時候使用,如果想實現跨平臺的操作,來降低開發的成本和維護的成本,就需要使用比較原始的SQLite。

  FMDB是用于進行數據存儲的第三方的框架,它與SQLite與Core Data相比較,存在很多優勢。

  Core Data是ORM的一種體現,使用Core Data需要用到模型數據的轉化,雖然操作簡單,不需要直接操作數據庫,但是性能沒有直接使用SQLite高。

但是SQLite使用的時候需要使用c語言中的函數,操作比較麻煩,因此需要對它進行封裝。

但是如果只是簡單地封裝,很可能會忽略很多重要的細節,比如如何處理并發以及安全性更問題。

  因此,在這里推薦使用第三方框架FMDB,它是對libsqlite3框架的封裝,用起來的步驟與SQLite使用類似,并且它對于多線程的同時操作一個表格時進行了處理,也就意味著它是線程安全的。

FMDB是輕量級的框架,使用靈活,它是很多企業開發的首選。

  FMDB中重要的類  FMDatabase:一個FMDatabase對象就代表一個單獨的SQLite數據庫,用來執行SQL語句  FMResultSet:使用FMDatabase執行查詢后的結果集  FMDatabaseQueue:用于在多線程中執行多個查詢或更新,它是線程安全的

  FMDB使用步驟  1. 下載FMDB文件 fmdb下載地址 ,將FMDB文件夾添加到項目中  2. 導入sqlite框架,導入FMDatabase.h文件  3.與SQLite使用步驟類似,需要獲取數據庫文件路徑,然后獲得數據庫,并打開數據庫,然后數據庫進行操作,最后關閉數據庫。

代碼如下所示:  // ViewController.m  // JRFMDB  //  // Created by jerehedu on 15/6/18.  // Copyright (c) 2015年 jerehedu. All rights reserved.  //  #import ViewController.h  #import FMDatabase.h  @interface ViewController ()  @property (nonatomic, strong) FMDatabase *db;  @end  @implementation ViewController  - (void)viewDidLoad  {  [super viewDidLoad];  //導入sqlite框架,導入FMDB文件夾  //1.獲得數據庫文件的路徑  NSString *doc=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];  NSString *fileName=[doc stringByAppendingPathComponent:@student.sqlite];  NSLog(@fileName = %@,fileName);  //2.獲得數據庫  FMDatabase *db = [FMDatabase databaseWithPath:fileName];  //3.打開數據庫  if ([db open]) {  NSLog(@ok);  //4.創表  BOOL result=[db executeUpdate:@CREATE TABLE IF NOT EXISTS t_student (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, age integer NOT NULL);];  if (result) {  NSLog(@創表成功);  }else{  NSLog(@創表失敗);  }  }  self.db=db;  //插入數據  [self insertStu];  [self deleteStu:6];  [self updateStu:@apple7_name :@7777];  [self queryStu];  [self dropStu];  [self insertStu];  [self queryStu];  //6.關閉數據庫  [self.db close];  }  #pragma mark 插入數據  -(void)insertStu  {  for (int i=0; i10; i )  {  NSString *name = [NSString stringWithFormat:@1apple%i_name,i];  int age = arc4random()%3 20;  //1. executeUpdate : 不確定的參數用?來占位 (后面參數必須都是oc對象)  [self.db executeUpdate:@INSERT INTO t_student (name, age) VALUES (?,?);,name,@(age)];  //2. executeUpdateWithFormat : 不確定的參數用%@、%d等來占位 (參數為原始數據類型)  // [self.db executeUpdateWithFormat:@insert into t_student (name, age) values (%@, %i);,name,age];  //3. 數組  // [self.db executeUpdate:@INSERT INTO t_student (name, age) VALUES (?,?); withArgumentsInArray:@[name,@(age)]];  }  }  #pragma mark 刪除數據  -(void)deleteStu:(int)idNum  {  //a. executeUpdate : 不確定的參數用?來占位 (后面參數必須都是oc對象)  // [self.db executeUpdate:@delete from t_student where id=?;,@(idNum)];  //b. executeUpdateWithFormat : 不確定的參數用%@、%d等來占位  // [self.db executeUpdateWithFormat:@delete from t_student where name=%@;,@apple9_name];  }  #pragma mark 銷毀表格  -(void)dropStu  {  [self.db executeUpdate:@drop table if exists t_student;];  //4.創表  BOOL result=[self.db executeUpdate:@CREATE TABLE IF NOT EXISTS t_student (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, age integer NOT NULL);];  if (result) {  NSLog(@再次創表成功);  }else{  NSLog(@再次創表失敗);  }  }  #pragma mark 修改數據  -(void)updateStu:(NSString *)oldName :(NSString*)newName  {  // [self.db executeUpdateWithFormat:@update t_student set name=%@ where name=%@;,newName,oldName];  [self.db executeUpdate:@update t_student set name=? where name=?,newName,oldName];  }  #pragma mark 查詢數據  -(void)queryStu  {  //1.執行查詢語句  // FMResultSet *resultSet = [self.db executeQuery:@select * from t_student;];  FMResultSet *resultSet = [self.db executeQuery:@select * from t_student where id  //2.遍歷結果集合  while ([resultSet next]) {  int idNum = [resultSet intForColumn:@id];  NSString *name = [resultSet objectForColumnName:@name];  int age = [resultSet intForColumn:@age];  NSLog(@id=%i ,name=%@, age=%i,idNum,name,age);  }  }  - (void)didReceiveMemoryWarning  {  [super didReceiveMemoryWarning];  // Dispose of any resources that can be recreated.  }  @end

版權聲明:本文由 趙笑寒 整理編輯。

原標題:ios開發是什么,ios 開發重點

轉載注明出處:http://www.dn9ww09s.icu/program/15592.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • g04編程實例,g03編程實例

    g04編程實例,g03編程實例 相關圖片數控車編程實例注解Java服務器頁面(JSP)作為一種構建動態web頁面的技術,正變得越來越流行。JSP不同于ASP、PHP和工作機制。通常,JSP頁面是在執行時編譯而不是解釋的數控車g03編程實...

  • ADO.NET,NET是什么

    ADO.NET,NET是什么 相關圖片futurenet在使用ASP時,我們經常使用第三方控件來實現一些圖像功能。現在,隨著asp.net的引入,我們不再需要使用第三方控件來實現它,因為asp.net具有強大的功能來net開源框架...

  • 如何設置服務器ip地址,服務器ip地址大全

    如何設置服務器ip地址,服務器ip地址大全 相關圖片查詢app服務器ip地址本文給出了一個用PHP獲取服務器IP地址的實例。與您分享以供參考。具體分析如下:在PHP中,我們通常使用$_server['http_host']在URL中獲取時間同步服務器ip地址...

  • 本年累計余額怎么算,養老保險累計賬戶余額

    本年累計余額怎么算,養老保險累計賬戶余額 相關圖片銀行日記賬的本年累計怎么算財務人員手工記賬時,會有借貸后的余額,即累計余額,即每個科目后記錄余額。如果使用計算機記賬,可以查詢完成累計余額的計算。首先,創建一個表...

  • excel人民幣大寫函數,人民幣大寫公式

    excel人民幣大寫函數,人民幣大寫公式 相關圖片excel數字轉人民幣大寫SQL server函數將人民幣數字轉換為大寫形式的創建函數[dbo]。[f﹣num﹣(@num numeric(14,5))返回帶加密的varchar(100電子表格人民幣大寫函數...

  • 無法解決的問題下還有八種解決方案,下淋最快的解決方案

    無法解決的問題下還有八種解決方案,下淋最快的解決方案 相關圖片技術方案和解決方案目前,大多數使用MySQL的網站同時使用Memcache作為密鑰值緩存。盡管這種架構非常流行,并且有很多成功的案例,但它過于依賴Memcache,這實際上使Me問題解決方案格式...

  • const extern,extern static

    const extern,extern static 相關圖片extern說明本文主要介紹如何在開發中使用常量、靜態和外部關鍵字。如果你喜歡我的文章,你可以關注我的微博:你可以到曉瑤閣來了解我們的iOS培訓課程。稍后將更新更多內容。。。...

  • 怎樣獲取select的值,獲取select2選中的值

    怎樣獲取select的值,獲取select2選中的值 相關圖片jsp獲取select選中的值本文的示例描述了JavaScript獲取select值的方法。與您分享以供參考。具體分析如下:1。顯示的漢字編碼如下:document.getelementbyselect下拉框提交值...

  • sql刪除重復數據,如何刪除重復數據

    sql刪除重復數據,如何刪除重復數據 相關圖片oracle恢復刪除的表有很多方法可以刪除Internet上的重復數據,例如delete from prod,grid,Inc其中ROWID in(選擇b.row,Id2 from(選表格刪除重復項...

  • 眼鏡框制作,手機中框和邊框的區別

    眼鏡框制作,手機中框和邊框的區別 相關圖片門窗框的固定方法在從ios8升級到ios9的過程中,彈出提示框的方式發生了很大的變化。在xcode7和ios9.0的SDK中,已經明確表示不再推薦使用UIAlertView,只怎樣調眼鏡框...

熱評文章

  • 證書異常怎么解決方法,模塊異常4怎么解決

    證書異常怎么解決方法,模塊異常4怎么解決 相關圖片如何能解除模塊異常1在IIS6中同時啟用了asp.net 2.0和asp.net 4.0之后,網站程序可能會發生以下錯誤:system.web.httpexception:pathqq綁卡異常怎么解決...

  • 一波又一波,一波還來不及

    一波又一波,一波還來不及 相關圖片一波接一波本文主要介紹了一種實用的bash shell排序方法,它適用于Ubuntu和其他Debian-Linux系統。您可以將以下內容作為朋友的命令行資源管理器。你可能來一波是什么意思...

  • kotlin android開發,安卓開發框架

    kotlin android開發,安卓開發框架 相關圖片android開發語言本文主要介紹Android開發的IDE、ADT、SDK、JDK、NDK等術語的定義。對這些概念感到困惑是件痛苦的事。本文簡要說明了這些術語的含義。讓我們共同努力android系統...

  • excel的工作簿是,excel多個工作簿匯總

    excel的工作簿是,excel多個工作簿匯總 相關圖片excel批量合并工作簿學校希望以Excel文件的形式提交校友記錄中收集到的校友電子郵件地址,方便校友團體向全體校友發出參加校慶80周年的邀請。校友記錄數據庫是access mdb格式一個工作...

  • php將html轉化為word,phpword中文手冊

    php將html轉化為word,phpword中文手冊 相關圖片html5 word文件本文的例子描述了在PHP中將上傳的word文件轉換成HTML的方法。與您分享以供參考。具體實現方法如下:上傳頁面:?12345678910121314!DOCTphpword轉html閱讀...

  • 如何防范漏洞,怎樣防范漏洞

    如何防范漏洞,怎樣防范漏洞 相關圖片xss漏洞防范1。數據庫下載漏洞攻擊原理:當使用access作為后臺數據庫時,如果有人通過各種方法知道或猜測服務器的access數據庫路徑和數據庫名,也可以下載access數漏洞是怎么產生的...

  • 迭代算法的例子,迭代重建算法

    迭代算法的例子,迭代重建算法 相關圖片迭代計算什么意思在網頁上實現樹結構有點麻煩。在一個新的MIS系統的開發中,我們的項目組廣泛使用了樹形結構,如人員的選擇和單元的選擇。該MIS系統的數據庫是Oracle 9i,o斐波那契...

  • js 數組對象排序,js對象數組進行快去排序

    js 數組對象排序,js對象數組進行快去排序 相關圖片json對象數組asp.net中的ArrayList對象是包含單個數據值的數據項的集合。如何創建ArrayList對象以及如何對ArrayList中數據項的內容進行排序?下面是數組對象去重...

  • 在數組中查找指定元素,數組添加元素

    在數組中查找指定元素,數組添加元素 相關圖片怎么刪除數組中的某個元素本文的示例描述了JavaScript判斷數組是否包含指定元素的方法。與您分享以供參考。具體如下:該代碼通過prototype定義數組方法,以便調用contain如何刪除數組中...

  • fplot用法示例,vbarray的用法

    fplot用法示例,vbarray的用法 相關圖片groupbyhiving用法本文主要介紹Oracle merge into的使用。您可以參考以下情況。如果表中已經存在一段數據,請更新它。如果不存在,插入新數據。如果不使用Oracle提供說的用法...

關注微信

变脸官网查询