我想实现以下目标:
- 在 B 类中,添加 1 个对象后重新加载我的数据库。
reloadDatabase()
在完成块中调用。 - 在 classB 中,
reloadDatabase()
将调用getObjects()
以classA
获取最新的数据库对象列表并传递给objectList
classB
问题:我如何确保每当我调用getObjectList()
B 类时,我总是能得到最新的列表?据我了解,我objectList
可能不会在reloadDatabase() block
. 我可以在尚未到达完成块 getObjectList()
时调用(objectList 仍然是旧的 objectList)。reloadDatabase()
我对闭包和块很陌生。非常感谢任何指导!
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
}
}