Я настоятельно рекомендовал 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.