swiftを勉強中なのですが、サンプルプログラムがswift1.2(?)で描かれているので自分の環境であるswift2に書き換えて実行したいと思っているのですが、どうしても自分では対応できないエラーが発生しまったので教えていただきたいです。
サンプルプログラムが公開されているページ:http://dev.classmethod.jp/smartphone/iphone/swift-ios8-cikernel/
上記のプログラムを自分なりに2.0でも動くように変更したのですが、2箇所で「Property 'self.kernel' not initialized at super.init call」というエラーが出てきてしまいました。
import CoreImage
class CustomFilter: CIFilter {
var kernel: CIKernel var inputImage: CIImage? override init() { super.init() // エラー発生 self.kernel = createKernel() } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)! // エラー発生 self.kernel = createKernel() } func outputImg() -> CIImage? { if let inputImage = self.inputImage { let args = [inputImage as AnyObject] let dod = inputImage.extent.insetBy(dx: -1, dy: -1) return kernel.applyWithExtent(dod, roiCallback: { (index, rect) in return rect.insetBy(dx: -1, dy: -1) }, arguments: args) } return nil } private func createKernel() -> CIKernel { let kernelString = "kernel vec4 RGB_to_GBR(sampler source_image)\n" + "{\n" + "vec4 originalColor, twistedColor;\n" + "originalColor = sample(source_image, samplerCoord(source_image));\n" + "twistedColor.r = originalColor.g;\n" + "twistedColor.g = originalColor.b;\n" + "twistedColor.b = originalColor.r ;\n" + "twistedColor.a = originalColor.a;\n" + "return twistedColor;\n" + "}\n" return CIKernel(string: kernelString)! }
}
このエラーについては、ここで解説されていたのですが、今回の場合の具体的対処方法がわからずにいます…
もし対処方法がわかる方がおられましたらおしえていただけないでしょうか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/03 02:06
2015/10/03 14:32