2016-09-27 6 views
-2

스위프트 2.2 코드를 Swift 3.0으로 변환했지만 다음 오류가 발생합니다.스위프트 3.0 변환 오류

open func saveToPath(_ path: String, format: ImageFormat, compressionQuality: Double) -> Bool 
{ 
    if let image = getChartImage(transparent: format != .jpeg) { 
     var imageData: Data! 
     switch (format) 
     { 
     case .png: 
      imageData = NSUIImagePNGRepresentation(image) 
      break 

     case .jpeg: 
      imageData = NSUIImageJPEGRepresentation(image, CGFloat(compressionQuality)) 
      break 
     } 

     let url = NSURL(string: path) 
     return imageData.write(to: url as! URL, options: true) 
    } 
    return false 
} 

오류 :

는 는
유형의 값이 예상되는 인수의 형태 'data.writeOptions'에서 'BOOL'(일명 'NSData.writingOptions을'))로 변환 할 수 없습니다

무엇이 잘못

이 코드?

+0

이 방법이 변경되었습니다 https://developer.apple.com/reference/foundation/nsdata/1410595-write – Moritz

+0

또한, 당신은에 NSURL 캐스팅 URL이지만 URL을 직접 사용해야합니다. – Moritz

+0

'[]] 대신'[]'를 옵션에 전달하십시오. – Majster

답변

1

다음 두 줄을 고정해야합니다

let url = NSURL(string: path) 
return imageData.write(to: url as! URL, options: true) 
  1. 사용 URL하지 NSURL.
  2. 파일 경로 문자열을 파일 URL로 변환하려면 적절한 초기화 프로그램을 사용하십시오.
  3. options 매개 변수에 적절한 값을 전달하십시오. 같은

고정형 코드해야합니다

let url = URL(fileURLWithPath: path) 
return imageData.write(to: url, options: .atomic)