【问题标题】:Realm EXC_BAD_ACCESS when querying database查询数据库时的领域 EXC_BAD_ACCESS
【发布时间】:2015-08-29 09:59:07
【问题描述】:

我是领域的新手。我已阅读文档并按照示例创建和查询数据库。每当我运行下面的代码时,它就会崩溃

让领域 = 领域

我有一个视图控制器,我正在尝试像这样查询领域:

            // Get the default Realm
            let realm = Realm()
            // Query using an NSPredicate
            let predicate = NSPredicate(format: "s3_url = %@", s3_url)
            let medias =  realm.objects(MediaRealm).filter(predicate)

每次我运行这个我都会得到 Thread1: EXC_BAD_ACCESS

让领域 = 领域()

import UIKit
import Alamofire
import RealmSwift

class ViewController: UIViewController {

    let mediaCollection = MediaCollection()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        loadInitialData()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func loadInitialData(){
        //connect to url
        mediaCollection.fetch(onSuccess:{ self.onEventFetched($0) }, onError:{ self.displayAlert($0)})
    }

    func onEventFetched()->Void{
        println("Got stuff")
        println(mediaCollection.models.count)
        processCollection()
    }

    func processCollection()->Void{

        for media in mediaCollection.models{
            let m = media as! Media
            println(m.s3_url)
            println(m.title)
            if let s3_url = m.s3_url{

                //query database, if it already exists dont download it
                // Get the default Realm
                let realm = Realm()
                // Query using an NSPredicate
                let predicate = NSPredicate(format: "s3_url = %@", s3_url)
                let medias =  realm.objects(MediaRealm).filter(predicate)
                if medias.count == 0 {
                    println("no files found")
                    //downloadFile(s3_url)
                }
            }
        }
    }

我做错了什么?

【问题讨论】:

  • 你能展示你定义的模型吗?因为第一次访问 Realm 时会解析所有模型以创建模式。创建架构时可能发生了一些错误。
  • @kishikawakatsumi 这是一个糟糕的答案,但可能是真的,我得到了这个并且删除应用程序没有任何作用。

标签: realm


【解决方案1】:

这是由于我在数据库中添加了新字段而没有运行迁移造成的。 解决方案是删除应用程序并重新开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多