ObjectiveCeeds › NSFilePresenter implementieren

NSFilePresenter implementieren

Von Manfred Kreß

Seite 1 von 1



Bei dem Versuch einen NSFilePresenter zu konfigurieren um Änderungen im Dateisystem zu überwachen, habe ich mir lange die Zähne ausgebissen. Alle Artikel im Web behaupten "es ist nicht einfach". Es ist wie so oft, man muss nur die richtigen Schrauben finden, und daran drehen.

Um es kurz zu machen:
#import 

@interface OCWatchdog : NSObject 

@property (readonly) NSURL *presentedItemURL;
@property (readonly) NSOperationQueue *presentedItemOperationQueue;

@end
und die Implementation:
#import "OCWatchdog.h"

@implementation OCWatchdog

- (id)init
{
    self = [super init];
    if (self)
    {
        _presentedItemOperationQueue = [[NSOperationQueue alloc] init];
        [_presentedItemOperationQueue setMaxConcurrentOperationCount: 1];
        
        _presentedItemURL = [NSURL URLWithString: @"/bla/blub"];
        
        [NSFileCoordinator addFilePresenter: self];
    }
    return self;
}

- (void)presentedSubitemDidChangeAtURL:(NSURL *)url
{
    NSLog(@"shoebox changed %@", url);
    
}

@end
So viel zum Thema kompliziert. Tatsächlich werden laut WWDC Session Video die meisten Methoden des Protokolls garnicht aufgerufen. Wer z.B. auf presentedSubitemDidAppearAtURL: wartet, wartet vergebens.


Seite: 1 von 1


NSFilePresenter implementieren