2017-05-16 8 views
-2

.applying(transform)が解決されないのはなぜですか? なぜimageByApplyingもないのはなぜですか?コーディングを修正する方法は何ですか?

+1

のスウィフト3構文であるI最小限の検証可能な例がなければ、このコードを実際にテストすることはできません。それがなければ、私はこれを改善する方法の一般的なヒントを提供するだけです – Alexander

答えて

0

未解決の識別子は、おそらくUIImage(CIImageです。スウィフト3ではそれはUIImage(ciImage

より良い任意のバインドoutputImageです。

チェック(オプションを返さない)変換は

if let output = filter?.outputImage { 
    return UIImage(ciImage: output.applying(transform)) 
} 
return nil 

又は好ましい

guard let output = filter?.outputImage else { return nil } 
return UIImage(ciImage: output.applying(transform)) 

applying(_に適用される成功した場合、前者imageByApplying

+0

「@IBAction FUNC generateQrcode(_差出人:任意){ imageDisplay.image = generateQrcodeFromstring(文字列: "テキスト!") } FUNCのgenerateQrcodeFromstring(文字列:文字列) - > UIImage { LETデータ= string.data(?使用:String.Encoding.ascii) LETフィルタ= CIFilter(名称: "CIQRCodeGenerator") フィルタを.setValue(データを、forKey: "inputMessage") _ = CGAffineTransform(scaleXプロパティ:10、Y:10) LET場合output = filter?outputImage { return UIImage(ciImage:output.applying(transform)) } return nil} } - > transformのチェックが成功しない –

1

nilを確認してからアンラップを強制しないでください。ただ、条件付きバインディングを使用します。

if let output = filter?.outputImage?.applying(transform) { 
    return UIImage(CIImage: output) 
} 
    return nil; 
} 

それとも、本当に空想を取得したい場合:

return filter?.outputImage?.applying(transform).map(UIImage.init(CIImage:)) 
+0

助けてくれてありがとう!まだ変換をチェックしていない@@ –

+0

@ベンファン "変換はまだ成功していないかどうかを確認していない@@"何? – Alexander

関連する問題