Swift 2.0 и CVDisplayLinkSetOutputCallback через @convention(c)
Кому-нибудь удалось использовать таймер CVDisplayLink, не соединяя код Objective-C?
с добавлением @convention (c) это должно быть возможно, но я все еще получаю ошибку сегментации: 11 при попытке использовать CVDisplayLinkSetOutputCallback
required init?(coder: NSCoder) {
super.init(coder: coder)
CVDisplayLinkCreateWithActiveCGDisplays(&displayLink)
CVDisplayLinkSetOutputCallback(displayLink!, callback, UnsafeMutablePointer<Void>(unsafeAddressOf(self!)) )
}
//call back declarations
let callback : @convention(c)(displayLink: CVDisplayLink, inNow: UnsafePointer<CVTimeStamp>, inOutputTime: UnsafePointer<CVTimeStamp>, flagsIn: CVOptionFlags, flagsOut: UnsafeMutablePointer<CVOptionFlags>, displayLinkContext: UnsafeMutablePointer<Void>) -> CVReturn =
{ (displayLink, inNow, inOutputTime, flagsIn, flagsOut, displayLinkContext) -> CVReturn in
let context = UnsafeMutablePointer<GraphView>(displayLinkContext)
let newContext = context.memory
let error = newContext.getFrameForTime(inOutputTime)
return error;
return kCVReturnSuccess
}
теперь я могу это сделать? или мост все еще необходим для достижения точности таймера?