Я вложил в подкласс NSOperation и реализовал основной метод.Когда я добавил его в NSOperationQueue, он не вызывался.Я сравнил его с примерами кода и примерами проектов, которые делают работают и не мог понять, в чем проблема.У кого-нибудь есть опыт с этой проблемой и чем она вызвана, пожалуйста?
После сумасшествия, пытаясь найти проблему, я решил начать с нуля, перестраивать свой класс и тестировать его на каждом этапе.В шапке я объявил это подклассом NSOperation.В файле реализации я реализовал main и поместил только пару строк: sleep(3)
;NSLog..;
.Все хорошо.Каждый шаг работал, когда я начинал добавлять свойства, даже объявлял делегат и т. Д.
Наконец, в основном я поместил код для использования NSDirectoryEnumerator.Внезапно главный не был вызван вообще.Мало того, что когда я взял этот код обратно, он все еще не работает !!Я попытался перезапустить XCode 4, перезапустить мою машину (не знаю, почему они могут помочь, но у меня заканчиваются идеи), но все безрезультатно.
Любые подсказки были бы наиболее ценными.Спасибо.
Обновление: я начал заново (снова!) С нуля, но на этот раз я собрал детали в другом порядке ... и теперь это работает!Однако, если что-то я делаю не так, и мне просто повезло на этот раз, вот раздел @interface, как предложил @Andrew:
@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