小编Man*_*olo的帖子

如何在swift中捆绑预先填充的数据库

我知道有很多相关的帖子,但我注意到他们都没有解释这样做的方式,大多数人说要查看文档,我看起来已经看了但似乎缺乏有关将预先填充的数据库带到Swift的信息

我有一个旧的数据库.db,超过60k行三列,我想用FMDB包装器带到我的swift SQLite应用程序,该应用程序在iPhone中工作,我试图将contacts.db拖到应用程序但我无法访问它.在设备中运行时,应用程序始终启动新数据库.

我将数据库复制到支持文件文件夹,并尝试在app文件夹中,无法访问

有没有人这样做并愿意告诉我该怎么做?

总之,我正在寻找的是将我的contacts.db插入应用程序(包),以便我可以访问设备而不是在模拟器中.我不需要在设备中添加删除或编辑contact.db,数据库加载了所需的所有信息,用户只能进行搜索并能够显示结果.

class ViewController: UIViewController {

@IBOutlet weak var name: UITextField!
@IBOutlet weak var address: UITextField!

var databasePath = NSString()    

override func viewDidLoad() {
    super.viewDidLoad()

    if let resourceUrl = NSBundle.mainBundle().URLForResource("contacts", withExtension: "db") {
        if NSFileManager.defaultManager().fileExistsAtPath(resourceUrl.path!) 
    }
    let filemgr = NSFileManager.defaultManager()
    let dirPaths =
    NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
            .UserDomainMask, true)

    let docsDir = dirPaths[0] as! String

    databasePath = docsDir.stringByAppendingPathComponent(
                    "contacts.db")

    if !filemgr.fileExistsAtPath(databasePath as String) {

        let contactDB = FMDatabase(path: databasePath as String)

        if contactDB == nil {
            println("Error: \(contactDB.lastErrorMessage())")
        } …
Run Code Online (Sandbox Code Playgroud)

sqlite database-connection swift

6
推荐指数
2
解决办法
3169
查看次数

如何在Swift中找到正确的路径

我从文档中得到了这个代码,我找不到文件的路径,我需要将"contacts.db"文件从Supporting Files文件夹复制到设备中不在模拟器中的应用程序以供离线使用.

func copyItemAtPath(_ srcPath: String,
         toPath dstPath: String,
          error error: NSErrorPointer) -> Bool
Run Code Online (Sandbox Code Playgroud)

srcPath =要移动的文件或目录的路径.此参数不得为零.

dstPath =放置srcPath副本的路径.此路径必须包含新位置中的文件或目录的名称.此参数不得为零.

error = On输入,指向错误对象的指针.如果发生错误,则将此指针设置为包含错误信息的实际错误对象.如果您不想要错误信息,可以为此参数指定nil.

任何帮助都非常感谢.:)

sqlite database-connection ios swift

2
推荐指数
1
解决办法
5679
查看次数

在设备中查找路径时出错

我只是将Data.csv文件拖到导航器面板中的应用程序文件夹,我试图将文件的正确路径设置到应用程序中.

下面我用模拟器和完美的作品,但在我改变代码的第二块设备上运行的代码,然后我得到这个错误:

数据[399:157757] CFURLCopyResourcePropertyForKey失败,因为它是通过它没有一个URL scheme
错误Domain = NSCocoaErrorDomain Code = 256"无法打开文件"Documents"."
的UserInfo = {NSURL =的/ var /移动/容器/数据/应用/ C7756542-6922-4C6F-A98E-C6F407B2063E /文件}

//code to show the path in the simulator:
         guard let remoteURL = NSURL(string: "/Users/mbp/Library/Developer/CoreSimulator/Devices/7F25FC7C-F2B2-464E-85B4-A2B96DB83F17/data/Containers/Bundle/Application/F285940D-7776-4EE2-83A1-D54DD3411E0E/Data.app/Data.csv") else {
            return
        }
Run Code Online (Sandbox Code Playgroud)

阻止在设备中运行应用:

  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {


        let sourcePath = NSBundle.mainBundle().pathForResource(“Data”, ofType: "csv")
        print(sourcePath)

        let filename = "Data.csv"
        let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
        let destinationPath = documentsPath + "/" + filename

        do {
            try NSFileManager().copyItemAtPath(sourcePath!, toPath: destinationPath)
        } …
Run Code Online (Sandbox Code Playgroud)

ios swift

1
推荐指数
1
解决办法
2986
查看次数

标签 统计

swift ×3

database-connection ×2

ios ×2

sqlite ×2