2016-03-03 165 views
1

实施PHPhotoLibraryChangeObserver协议我想设置我的AssetService为changeObserver,但我得到了如下因素的错误:在迅速

Error:(8, 14) type 'AssetService' does not conform to protocol 'PHPhotoLibraryChangeObserver'

虽然photoLibraryDidChange是唯一需要的方法。这里是我的代码:

import UIKit 
import Photos 

public class AssetService : PHPhotoLibraryChangeObserver { 

    public init() { 

     // here I do some other stuff 
     PHPhotoLibrary.sharedPhotoLibrary().registerChangeObserver(self) 
    } 

    public func photoLibraryDidChange(changeInstance: PHChange) { 
     dispatch_async(dispatch_get_main_queue(), { 

     }) 
    } 
} 

回答

1

我认为你需要从NSObject的,才能在PhotoFramework使用它

因此,您也需要重载init,并添加super.init()

import UIKit 
import Photos 

public class AssetService : NSObject, PHPhotoLibraryChangeObserver { 
    public override init() { 
     super.init() 
     // here I do some other stuff 
     PHPhotoLibrary.sharedPhotoLibrary().registerChangeObserver(self) 
    } 

    public func photoLibraryDidChange(changeInstance: PHChange) { 
     dispatch_async(dispatch_get_main_queue(), { 

     }) 
    } 
} 
延长

希望这将解决这个问题

0

在雨燕3.0的寄存器实际上看起来现在这个样子:

func photoLibraryDidChange(_ changeInstance: PHChange) { 
    DispatchQueue.main.async { 

    } 
} 

public override init() { 
    super.init() 
    PHPhotoLibrary.shared().register(self) 
} 

其他一切都在Bart Schoon's answer