最新国产好看的视频,伊人天堂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)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一,導(dǎo)入描述文件

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ù)庫操作,都必須拿到這個指針才能進(jìn)行相關(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工具中驗(yàn)證之后再進(jìn)行調(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 
  } 
} 

運(yùn)行結(jié)果


附件

工具類

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

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

相關(guān)文章

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

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

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

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

    這篇文章主要給大家介紹了關(guān)于Swift5中從原始文本創(chuàng)建字符串的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Swift5具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    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)庫問題填坑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • swift4 使用DrawerController實(shí)現(xiàn)側(cè)滑菜單功能的示例代碼

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

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

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

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

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

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

    Swift、Objective-C、Cocoa混合編程設(shè)置指南

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

    通過示例分析Swift單例模式

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

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

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

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

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

最新評論

徐汇区| 白银市| 昂仁县| 延吉市| 合江县| 灵石县| 泽普县| 贵州省| 方城县| 乃东县| 东乡县| 白玉县| 宜兰市| 东明县| 长岭县| 建昌县| 梓潼县| 广河县| 泾川县| 南通市| 军事| 平乐县| 潞城市| 广东省| 汝城县| 富锦市| 巴里| 黄山市| 枣强县| 子洲县| 北海市| 房产| 阜阳市| 赣榆县| 万盛区| 正镶白旗| 社旗县| 广汉市| 南投县| 突泉县| 济宁市|