Как вы получаете объекты из представления YapDatabase? - PullRequest
0 голосов
/ 02 октября 2018

Я настоятельно рекомендовал YapDatabase для моей работы в Swift 4. Я новичок в Swift и Yap.Из моего прочтения обширной вики, связанной с базой данных YapD, я понимаю, что мне следует создать представление моих данных, а затем представить их в своем пользовательском интерфейсе.Чего я пытаюсь избежать, так это прямого соединения моего хранилища данных с хранилищем пользовательского интерфейса, что, похоже, и делают все примеры.С этой целью я действительно думал, что инкапсуляция хранилища данных и представление его содержимого с помощью RxSwift может быть хорошим способом для этого, и был бы признателен за некоторые мысли по этому поводу.На данный момент я просто пытаюсь получить содержание моего взгляда.Пока у меня есть следующий код для создания группы свойств:

// Class level variables configured at init()

_database = YapDatabase(path: path)!
_readConnection = _database.newConnection()
_readConnection.metadataCacheEnabled = false
_readConnection.objectCacheLimit = 400

func createPropertiesGrouping()
{
    let grouping =
        YapDatabaseViewGrouping.withObjectBlock({ (readTransaction, str1, str2, object) -> String? in
            if ( object is Property )
            { return "properties" }
            return nil
        })

    let sorting = YapDatabaseViewSorting.withObjectBlock { (readTransaction, str1, str2, str3, object1, str4, str5, object2) -> ComparisonResult in
        return .orderedSame
    }

    let propertyView = YapDatabaseAutoView(grouping: grouping, sorting: sorting)
    _database.asyncRegister(propertyView, withName: "properties")
}

Я инициализировал соединение только для чтения в моем методе 'init' для моего класса хранилища данных следующим образом:

_readConnection.enableExceptionsForImplicitlyEndingLongLivedReadTransaction()
_readConnection.beginLongLivedReadTransaction()

Но как же мне вернуть содержимое моего взгляда?Я на самом деле думаю, что YapDatabaseAutoView - неправильный выбор, но документация показывает вариацию target-c с использованием класса YapDatabaseView, который кажется мне абстрактным.

Буду признателен за любые указания о том, как получить содержимое представления, чтобы я мог использовать его потенциально в RxSwift.

...