2017-04-20 4 views
0
extension URL { 
     func toJPEGData(beginAsync: ((Void) -> Void)?, endAsync: ((Void) -> Void)?, quality: ImageQualityEnum, completion: @escaping (Data?, BBError?) -> Void) { 
      let scheme = self.scheme, URLString = self.absoluteString 
      if scheme == "assets-library" { 
     let assets: PHFetchResult = PHAsset.fetchAssets(withALAssetURLs: [self], options: nil) 
     guard let asset = assets.firstObject else { 
      completion(irrelevant) 
      return 
     } 
     beginAsync?() 
     PHImageManager.default() .requestImage(for: asset, targetSize: PHImageManagerMaximumSize, contentMode: PHImageContentMode.aspectFit, options: nil) { 
      [weak self] (image, info) in 

にも適用することができる^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ NSURLExtension.swiftを取得しています:91:23:「弱い」というのは、「URL」ではなくクラスやクラスにバインドされたプロトコルタイプにのみ適用されます。拡張URL:「弱い」は唯一のクラスとクラスが結合したプロトコルタイプではなく、「URL」

ここでは何が起こっていますコンパイルして2.3でうまく動作していたスニペットで

答えて

1

NSURLURLが構造体である、クラスで、エラーメッセージが「弱い」は唯一のクラス...に適用することができると述べています。

つまり、URLには[weak self]を使用できません。NSURLの拡張子を使用するか、[unowned self]を使用してください。

+0

いいえ、私はNSURLを延長し続けます。 2つの間で前後にどのように変換する任意のアイデアですか? –

+0

ちょうどそれらを 'URL '、' NSURL'(感嘆符なし、疑問符なし)のように橋渡ししてください。 – vadian

+0

FYIでは、値の型でも 'unowned'を使うことはできません。 – Rob

関連する問題