【发布时间】:2015-03-11 18:17:03
【问题描述】:
我仍在努力思考如何使用 GDC 执行 Realm 查询。
我的一门课中有这段代码:
class func placeNameForChatChannel(chatChannel: String, withCompletion handler: (String?)->()) {
dispatch_async(realmQueue) {
var channelEnvPredicate = NSPredicate(format: "channelName = %@", chatChannel)
var channelEnvs = PSTChannelEnvironment.objectsInRealm(realmdb, withPredicate: channelEnvPredicate)
if channelEnvs.count > 0 {
var channelEnvironment = channelEnvs[0] as! PSTChannelEnvironment
let placeName = channelEnvironment.placeName
handler(placeName)
} else {
handler(nil)
}
}
}
这两个在我的Application Delegate中被声明为全局变量
var realmdb: RLMRealm {
return RLMRealm.defaultRealm()
}
var realmQueue = dispatch_queue_create("com.myapp.realmdb", DISPATCH_QUEUE_SERIAL)
当handler 回调被调用时,我得到了现在臭名昭著的RLMException, reason: 'Realm accessed from incorrect thread。
我做错了什么?
【问题讨论】: