我是Couchbase和Swift的新手,我正在尝试获得一个候选架构,并且正在为我正在开发的新应用程序运行.我认为Couchbase非常合适,除了我无法在没有崩溃的情况下使用它.这可能有几个原因,但只是为了进行健全性检查,我只想弄清楚这是不是我做错了.
以下映射函数在每次调用emit函数时都会导致EXC_BAD_ACCESS错误.该函数在启动时从视图控制器调用.我检查了调试器中的参数,它们指向内存中的有效引用.以下是创建查询的函数:
class func listEvents() -> CBLQuery? { if let view:CBLView = DatabaseService.sharedInstance.database.viewNamed("events") { if !view.mapBlock { //create the map block if it doesn't exist func mapBlock(doc: [NSObject: AnyObject]!, emit: ((key: AnyObject, value: AnyObject!) -> ())?) { if let type:AnyObject = doc["type"] { if type.isKindOfClass(NSString.self) && (type as String) == Event.docType() { if let key: AnyObject = doc["date"] { if let emitFunc = emit { emitFunc(key: key, value: doc) } } } } } view.setMapBlock(mapBlock, reduceBlock: nil, version: "1") } return view.createQuery() } return nil }
我也试过重写Objective-C中的整个函数,它可以工作,所以如果没有人可以帮助我,那么我将把这个放到Swift中的一个bug中.如果是的话,我想向Apple报告这个问题,但是我对Couchbase Mobile SDK如何工作和Swift的理解仍然非常有限.如果有任何人设法让Couchbase Lite与Swift合作,那么如果你可以帮助我的话会很棒.或者甚至更好,如果在Github上有一个用Swift编写的示例项目,那么此时对我来说就是金牌.