欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ù)庫操作,都必須拿到這個指針才能進行相關(guān)操作 
    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 
  } 
} 

運行結(jié)果


附件

工具類

// 
// 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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 倉庫模式及其在Swift?項目中的應用詳解

    倉庫模式及其在Swift?項目中的應用詳解

    這篇文章主要為大家介紹了倉庫模式及其在Swift?項目中的應用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • swift計步器CMPedometer的使用方法

    swift計步器CMPedometer的使用方法

    這篇文章主要為大家詳細介紹了swift計步器CMPedometer的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Swift使用CoreData時遇到的一些填坑記錄

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

    這篇文章主要給大家記錄了在Swift使用CoreData時遇到的一些坑,以及介紹了CoreData在Swift 3.0中的一點改變,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-12-12
  • Compose聲明式代碼語法對比React?Flutter?SwiftUI

    Compose聲明式代碼語法對比React?Flutter?SwiftUI

    這篇文章主要為大家介紹了Compose聲明式代碼語法對比React?Flutter?SwiftUI來解釋為什么說?Compose?的聲明式代碼最簡潔,有需要的朋友可以借鑒參考下
    2022-08-08
  • Swift設(shè)置UILabel內(nèi)邊距的實例代碼

    Swift設(shè)置UILabel內(nèi)邊距的實例代碼

    有時候,我們需要一個顯示文字,又想這些文字與邊界之間有自定義的邊距,所以下面這篇文章主要給大家介紹了關(guān)于Swift設(shè)置UILabel內(nèi)邊距的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • 利用Swift如何計算文本的size示例詳解

    利用Swift如何計算文本的size示例詳解

    這篇文章主要給大家介紹了關(guān)于利用Swift如何計算文本的size的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對各位iOS開發(fā)者們的工作或者學習具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • 淺談Swift派發(fā)機制

    淺談Swift派發(fā)機制

    派發(fā)目的是讓 CPU 知道被調(diào)用的函數(shù)在哪里。Swift 語言是支持編譯型語言的直接派發(fā),函數(shù)表派發(fā)和消息機制派發(fā)三種派發(fā)方式的,下面分別對這三種派發(fā)方式說明下。
    2021-06-06
  • Swift心得筆記之字符串

    Swift心得筆記之字符串

    Swift 的 String 類型是值類型 。 如果您創(chuàng)建了一個新的字符串,那么當其進行常量、變量賦值操作或在函數(shù)/方法中傳遞時,會進行值拷貝。 任何情況下,都會對已有字符串值創(chuàng)建新副本,并對該新副本進行傳遞或賦值操作。
    2015-04-04
  • Swift中風味各異的類型擦除實例詳解

    Swift中風味各異的類型擦除實例詳解

    你也許曾聽過類型擦除,甚至也使用過標準庫提供的類型擦除類型如 AnySequence,下面這篇文章主要給大家介紹了關(guān)于Swift中風味各異的類型擦除的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 使用swift實現(xiàn)計算器功能

    使用swift實現(xiàn)計算器功能

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

最新評論