2017-05-16 5 views
-2

왜 .applying (변환)이 해결되지 않았습니까? 더 이상 imageByApplying이없는 이유는 무엇입니까?코딩을 수정하는 방법은 무엇입니까?

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

I의 신속한 3 구문은 최소한의 검증 가능한 예제없이이 코드를 실제로 테스트 할 수는 없습니다. 그것 없이는, 나는 이것을 개선하는 방법에 대해서만 일반적인 힌트를 제공 할 수 있습니다 – 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 { 가 할 데이터 = string.data (사용 : String.Encoding.ascii) let filter = CIFilter (name : "CIQRCodeGenerator") 필터? .setValue (data, forKey : "inputMessage") _ = CGAffineTransform (scaleX : 10, y : 10) output = filter? .outputImage { return UIImage (ciImage : output.applying (transform)) } return nil} } -> 변형 검사가 성공하지 못함 –

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

관련 문제