PHPhotoLibrary ändern Beobachter nicht genannt
Ich scheine zu sein, ein zufälliges problem, dass ich keine Ahnung habe warum das passiert ist. Ich kann nicht scheinen, um die photoLibraryDidChange:(PHChange *)changeInstance
aufgerufen werden, indem der Beobachter. Ich habe mehrere leere Projekte und alle zeigen dieses Problem, die änderung Beobachter wird manchmal genannt werden beim ersten app-installation, aber nie nach, wenn ich änderungen in der Fotos-app. Ich habe auch einen reset der simulator ohne Erfolg. Ich würde schätzen jede Hilfe, die angeboten wird.
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];
}
- Was redest du da. Ich gehe auf die app "Fotos" und "Favorit", unfavorite, und löschen Sie die Bilder.
- Tun Sie nicht Folgen? Es ist kein code. Dies ist Manipulation IN der Fotos-app, die angeblich zu notifiy Sie von änderungen.
- Ja, ich habe eine leere single-view-Projekt, mit nichts in ihm, um zu versuchen, um herauszufinden, warum es nicht funktioniert jetzt. Nicht unhöflich sein, war für mich die letzten paar Tage, aber nicht jetzt.
- das ist der gesamte code. Aber ich werde neu formatieren
- Ich verkürzt den code
- Die app läuft immer noch, und meine änderung Beobachter verwendet, um aufgerufen werden, auch wenn die app nicht im Vordergrund.
- Ich habe backgrounding-setup in der original-app arbeiten, so würden die änderungen noch nicht gepostet werden. Das hat mein Problem dann hier!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, es ist etwas falsch mit, wie Sie testen. Es funktioniert gut für mich. Hier ist, was ich Tat.
Dies ist der gesamte code meines one-view-controller:
Mir läuft die app im Simulator. Eine Zulassung beantragt wird. Ich ermächtige die. Hinter den Simulator, wo Xcode läuft, sehe ich "Hier" in der console - dies ist erwartet, da bekommen wir eine Meldung ändern, wenn die Bibliothek "zum Leben erwacht" nach der Autorisierung. Das ist genau wie der Beobachter Verhalten sollen.
Immer noch im Simulator, ich habe Shift-Command-H gehen auf das Sprungbrett. Ich Wechsel zur Fotos-app und ein Foto löschen.
In den Simulator, ich habe Shift-Command-H zweimal, um die app-switcher.
In den Simulator, klicke ich auf den noch immer Laufenden test-app, um zu Ihr zurückkehren. Hinter der Simulator in Xcode, sehe ich "Hier" in der Konsole, denn während wir aus waren, ein Foto gelöscht wurde. Nochmals, das ist genau, wie der Beobachter Verhalten sollen.