私は以下を達成したい:
- classB では、1 つのオブジェクトを追加した後にデータベースをリロードします。
reloadDatabase()
completionBlock 内で呼び出されます。 - classB では、データベース オブジェクトの最新のリストを取得するために
reloadDatabase()
呼び出さgetObjects()
れ、classB に渡されます。classA
objectList
質問: getObjectList()
classB で呼び出すたびに、常に最新のリストを取得するにはどうすればよいですか? 私の理解では、objectList
更新されていない可能性がありますreloadDatabase() block
。getObjectList()
まだ完了ブロックに達していないときに呼び出すことができますreloadDatabase()
(objectList はまだ古い objectList です)。
私はクロージャーとブロックにかなり慣れていません。どんなガイダンスも大歓迎です!
class classA: NSObject {
func addThisObject(object: RLMObject, completionBlock: () -> ())){
...
completionBlock()
}
func getObjects (completionBlock: ((list: [RLMObject]) -> ())){
var recordList = [RLMObject]()
...
completionBlock(list: recordList)
}
}
class classB: NSObject {
var objectList = [RLMObject]()
func addObject (object: RLMObject) {
classA().addThisObject(object, completionBlock: {() -> () in
self.reloadDatabase()
})
}
func reloadDatabase() {
classA().getObjects{(list) -> () in
self.objectList = list
}
}
func getObjectList() -> [RLMObject] {
return objectList
}
}