最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

swift3.0 創(chuàng)建sqlite數(shù)據(jù)庫步驟方法

 更新時間:2017年06月30日 08:32:44   作者:tergun  
本篇文章主要介紹了swift3.0 創(chuàng)建sqlite數(shù)據(jù)庫步驟方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一,導入描述文件

1.

2,

.

3,

二,寫橋接文件sqliteManager

1.文件里寫入

#import <sqlite3.h>就可以了

2.把橋接文件添加到編譯環(huán)境


三, 寫數(shù)據(jù)庫管理類(單例)

import UIKit 
 
class sqliteManager: NSObject { 
  private static let manager: sqliteManager = sqliteManager() 
  //單例 
  class func shareManager() -> sqliteManager{ 
    return manager 
  } 
  //數(shù)據(jù)庫對象 
  private var db:OpaquePointer? = nil 
  func openDB(sqliteName:String){ 
    //0.拿到數(shù)據(jù)庫的路徑 
    let path = sqliteName.docDir() 
    print(path) 
    let cPath = path.cString(using: String.Encoding.utf8) 
    //1.需要代開的數(shù)據(jù)庫的路徑 c語言的字符串 
    //2.打開之后的數(shù)據(jù)庫對象(指針),以后所有的數(shù)據(jù)庫操作,都必須拿到這個指針才能進行相關操作 
    if sqlite3_open(cPath, &db) != SQLITE_OK{ 
      print("數(shù)據(jù)庫打開失敗") 
      return  
    } 
    if creatTable(){ 
      print("創(chuàng)建表成功") 
    }else{ 
      print("創(chuàng)建表失敗") 
    } 
  } 
  private func creatTable() -> Bool 
  { 
    // 1.編寫SQL語句 
    // 建議: 在開發(fā)中編寫SQL語句, 如果語句過長, 不要寫在一行 
    // 開發(fā)技巧: 在做數(shù)據(jù)庫開發(fā)時, 如果遇到錯誤, 可以先將SQL打印出來, 拷貝到PC工具中驗證之后再進行調(diào)試 
    let sql = "CREATE TABLE IF NOT EXISTS T_Person( \n" + 
      "id INTEGER PRIMARY KEY AUTOINCREMENT, \n" + 
      "name TEXT, \n" + 
      "age INTEGER \n" + 
    "); \n" 
    //    print(sql) 
    // 2.執(zhí)行SQL語句 
    return execSQL(sql: sql) 
  } 
  func execSQL(sql: String) -> Bool 
  { 
    // 0.將Swift字符串轉(zhuǎn)換為C語言字符串 
    let cSQL = sql.cString(using: String.Encoding.utf8)! 
     
    // 在SQLite3中, 除了查詢意外(創(chuàng)建/刪除/新增/更新)都使用同一個函數(shù) 
    /* 
     1. 已經(jīng)打開的數(shù)據(jù)庫對象 
     2. 需要執(zhí)行的SQL語句, C語言字符串 
     3. 執(zhí)行SQL語句之后的回調(diào), 一般傳nil 
     4. 是第三個參數(shù)的第一個參數(shù), 一般傳nil 
     5. 錯誤信息, 一般傳nil 
     */ 
    if sqlite3_exec(db, cSQL, nil, nil, nil) != SQLITE_OK 
    { 
      return false 
    } 
    return true 
  } 
 
 
} 

四,在AppDelegate里調(diào)用openDB函數(shù) 創(chuàng)建數(shù)據(jù)庫

mport UIKit 
 
@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 
 
  var window: UIWindow? 
 
 
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    // Override point for customization after application launch. 
    sqliteManager.shareManager().openDB(sqliteName: "tergun.sqlite") 
    return true 
  } 
} 

運行結果


附件

工具類

// 
// String+Category.swift 
// DSWeibo 
// 
// Created by xiaomage on 15/9/10. 
// Copyright © 2015年 小碼哥. All rights reserved. 
// 
 
import UIKit 
 
extension String{ 
  /** 
  將當前字符串拼接到cache目錄后面 
  */ 
  func cacheDir() -> String{ 
    let path = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last! as NSString 
    return path.appendingPathComponent((self as NSString).lastPathComponent) 
  } 
  /** 
  將當前字符串拼接到doc目錄后面 
  */ 
  func docDir() -> String 
  { 
    let path = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last! as NSString 
    return path.appendingPathComponent((self as NSString).lastPathComponent) 
  } 
  /** 
  將當前字符串拼接到tmp目錄后面 
  */ 
  func tmpDir() -> String 
  { 
    let path = NSTemporaryDirectory() as NSString 
    return path.appendingPathComponent((self as NSString).lastPathComponent) 
  } 
} 

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Swift實現(xiàn)Selection Sort選擇排序算法的實例講解

    Swift實現(xiàn)Selection Sort選擇排序算法的實例講解

    選擇排序是一種穩(wěn)定的排序算法,且實現(xiàn)代碼通常比冒泡排序要來的簡單,這里我們就來看一下Swift實現(xiàn)Selection Sort選擇排序的實例講解
    2016-07-07
  • Swift5中從原始文本創(chuàng)建字符串的方法

    Swift5中從原始文本創(chuàng)建字符串的方法

    這篇文章主要給大家介紹了關于Swift5中從原始文本創(chuàng)建字符串的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Swift5具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • Flutter iOS開發(fā)OC混編Swift動態(tài)庫和靜態(tài)庫問題填坑

    Flutter iOS開發(fā)OC混編Swift動態(tài)庫和靜態(tài)庫問題填坑

    這篇文章主要為大家介紹了Flutter iOS OC 混編 Swift動態(tài)庫和靜態(tài)庫問題填坑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • swift4 使用DrawerController實現(xiàn)側滑菜單功能的示例代碼

    swift4 使用DrawerController實現(xiàn)側滑菜單功能的示例代碼

    這篇文章主要介紹了swift4 使用DrawerController實現(xiàn)側滑功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Swift利用CoreData實現(xiàn)一個通訊錄存儲詳解

    Swift利用CoreData實現(xiàn)一個通訊錄存儲詳解

    這篇文章主要給大家介紹了關于Swift利用CoreData實現(xiàn)一個通訊錄存儲的相關資料,本文是大家學習coreDate的基礎問題,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-12-12
  • Swift使用CoreData時遇到的一些填坑記錄

    Swift使用CoreData時遇到的一些填坑記錄

    這篇文章主要給大家記錄了在Swift使用CoreData時遇到的一些坑,以及介紹了CoreData在Swift 3.0中的一點改變,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-12-12
  • Swift、Objective-C、Cocoa混合編程設置指南

    Swift、Objective-C、Cocoa混合編程設置指南

    這篇文章主要介紹了Swift、Objective-C、Cocoa混合編程設置指南,需要的朋友可以參考下
    2014-07-07
  • 通過示例分析Swift單例模式

    通過示例分析Swift單例模式

    這篇文章主要介紹了通過示例分析Swift單例模式的三種方法,分別是全局變量,內(nèi)部變量,dispatch_once方式,有需要的小伙伴可以參考下。
    2015-06-06
  • Swift 4.2使用self做為變量名淺析

    Swift 4.2使用self做為變量名淺析

    這篇文章主要給大家介紹了關于Swift 4.2使用self做為變量名的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • Swift4使用GCD實現(xiàn)計時器

    Swift4使用GCD實現(xiàn)計時器

    這篇文章主要為大家詳細介紹了Swift4使用GCD實現(xiàn)計時器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03

最新評論

阆中市| 石台县| 双城市| 揭西县| 兴安县| 新巴尔虎右旗| 定安县| 四川省| 德州市| 灵寿县| 兴文县| 大丰市| 九龙县| 石景山区| 新野县| 凉城县| 夏津县| 余姚市| 遵义市| 虎林市| 修文县| 女性| 景德镇市| 昭通市| 大悟县| 普宁市| 塔城市| 兰溪市| 奈曼旗| 翼城县| 驻马店市| 古丈县| 旺苍县| 贵定县| 镇雄县| 昌吉市| 定南县| 来安县| 昌江| 盈江县| 关岭|