Ich habe NSOperation als Unterklasse angelegt und die Hauptmethode implementiert. Als ich sie zu einer NSOperationQueue hinzufügte, wurde sie nicht aufgerufen. Ich habe sie mit Beispielcode und Beispielprojekten verglichen, die tun und konnte nicht erkennen, wo das Problem lag. Hat jemand Erfahrung mit diesem Problem und weiß, was es verursacht?
Nachdem ich mich bei der Suche nach dem Problem verrückt gemacht hatte, beschloss ich, noch einmal von vorne anzufangen, meine Klasse neu zu erstellen und sie in jedem Schritt zu testen. In der Kopfzeile habe ich sie als Unterklasse von NSOperation deklariert. In der Implementierungsdatei habe ich main implementiert und nur ein paar Zeilen eingefügt: sleep(3)
; NSLog..;
. Alles gut. Jeder Schritt funktionierte, als ich anfing, Eigenschaften hinzuzufügen, sogar Delegierte zu deklarieren, usw.
Schließlich fügte ich in der Hauptdatei Code ein, um NSDirectoryEnumerator zu verwenden. Plötzlich wurde main überhaupt nicht mehr aufgerufen. Und nicht nur das, als ich den Code wieder herausnahm, funktionierte es immer noch nicht!!! Ich habe versucht, XCode 4 neu zu starten, meinen Rechner neu zu starten (nicht dass ich wüsste, warum das helfen könnte, aber mir gehen die Ideen aus), aber alles ohne Erfolg.
Für jeden Hinweis wären wir sehr dankbar. Danke!
Update: Ich habe (wieder!) von vorne angefangen, aber dieses Mal habe ich die Teile in einer anderen Reihenfolge zusammengebaut... und jetzt funktioniert es! Für den Fall, dass ich trotzdem etwas falsch mache und dieses Mal einfach nur Glück hatte, hier der @Interface-Abschnitt, wie von @Andrew vorgeschlagen:
@class ScanOperation;
@protocol ScanOperationDelegate
-(void)fileFound:(ScanOperation *)operation;
-(void)finishedScanOperation:(ScanOperation *)operation;
@end
#import <Foundation/Foundation.h>
@interface ScanOperation : NSOperation {
@private
NSObject <ScanOperationDelegate> *delegate;
NSURL *rootUrl;
int totCount, dirCount, filCount, errCount;
NSTimeInterval elapsed;
}
- (id)initWithScanRootUrl:(NSURL *)startAtUrl;
@property (readwrite, assign) NSObject <ScanOperationDelegate> *delegate;
@property (readonly) int totCount, dirCount, filCount, errCount;
@property (readonly) NSTimeInterval elapsed;
@end