RealmDB не заполняется - PullRequest
0 голосов
/ 23 мая 2018

Впервые в Realm ... так что, надеюсь, простое исправление!

У меня есть объект данных:

class GasFile : Object {
  @objc dynamic var gasFilename : String = ""
 // @objc dynamic var gasCategory : String? = ""
}

В моем ViewController У меня есть следующая функция:

func PopulateRealmWithFilenames() {
    let fm = FileManager.default
    var path = Bundle.main.resourcePath!
    path += "/NBTFiles"
    //let items = try! fm.contentsOfDirectory(atPath: path)
    let items : [String] = try! fm.subpathsOfDirectory(atPath: path)

    for item in items {
        do {
            print("item for realm is: \(item)")
            try self.realm.write {
                let newGasFile = GasFile()
                newGasFile.gasFilename.append(item)
                print("newGasFile written ok")
            }
        } catch {
            print("Error writing new item to Realm \(error)")
        }
    }
}

Это устанавливает RealmDB нормально, но никогда не заполняется.
Цель функции - сохранить все имена файлов (не пути) файлов, хранящихся в папке с именем NBTFiles.
Я получаю 'newGasfile, написанный как распечатанный', так что он попадает в цикл.
Ошибка типа данных?(Я знаю, что мог бы просто поместить его в массив, но я хочу использовать область)

1 Ответ

0 голосов
/ 23 мая 2018

как вы хотите добавить новый объект в область без использования функции добавления?вы должны использовать realm.add(object: newGasFile)

попробуйте это

func PopulateRealmWithFilenames() {
let fm = FileManager.default
var path = Bundle.main.resourcePath!
path += "/NBTFiles"
//let items = try! fm.contentsOfDirectory(atPath: path)
let items : [String] = try! fm.subpathsOfDirectory(atPath: path)

for item in items {


    do {
        print("item for realm is: \(item)")
        try self.realm.write {
            let newGasFile = GasFile()
            newGasFile.gasFilename.append(item)
            realm.add(object: newGasFile)
            print("newGasFile written ok")
        }
    } catch {
        print("Error writing new item to Realm \(error)")
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...