Ich habe ein zufälliges Problem zu haben, dass ich keine Ahnung habe, warum passiert. Ich kann nicht scheinen, dass der photoLibraryDidChange:(PHChange *)changeInstance
vom Beobachter aufgerufen wird. Ich habe mehrere leere Projekte erstellt und alle demonstrieren dieses Problem. Der Change Observer wird manchmal bei der ersten App-Installation aufgerufen, aber nie aufgerufen, wenn ich Änderungen an der Fotos-App vorgenommen habe. Ich habe den Simulator auch vergebens zurückgesetzt. Ich würde jede Hilfe, die angeboten wird, schätzen.PHPhotoLibrary Änderung Beobachter nicht genannt
Code:
#import <UIKit/UIKit.h>
#import <Photos/Photos.h>
@interface ViewController : UIViewController <PHPhotoLibraryChangeObserver>
@end
- (void)viewDidLoad
{
[super viewDidLoad];
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status)
{
if (status == PHAuthorizationStatusAuthorized)
{
[PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0),^
{
[self setup];
});
}
}];
}
- (void)setup
{
PHFetchOptions *fetchOptions = [[PHFetchOptions alloc]init];
fetchOptions.wantsIncrementalChangeDetails = YES;
PHFetchResult *smartAlbumsFetchResult = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAny options:fetchOptions];
for (PHAssetCollection *sub in smartAlbumsFetchResult)
{
PHFetchResult *fetch = [PHAsset fetchAssetsInAssetCollection:sub options:fetchOptions];
}
}
- (void)photoLibraryDidChange:(PHChange *)changeInstance
{
NSLog(@"Not called");
}
- (void)dealloc
{
[PHPhotoLibrary.sharedPhotoLibrary unregisterChangeObserver:self];
}
Wovon redest du? Ich gehe auf die Fotos App und Favoriten, ungünstig, und lösche die Archivbilder. – klcjr89
Folgen Sie nicht? Es gibt keinen Code. Dadurch wird IN in der Fotos-App manipuliert, die Sie über Änderungen informieren soll. – klcjr89
@matt Ja, ich habe ein leeres Einzelansichtsprojekt erstellt, in dem nichts zu finden ist, um herauszufinden, warum es jetzt nicht funktioniert. Es war nicht unhöflich, es funktionierte für mich in den letzten paar Tagen, aber jetzt nicht. – klcjr89