我子類NSOperation並實現了主要方法。當我將它添加到NSOperationQueue中時,它沒有被調用。我將其與做的 的示例代碼和示例項目進行了比較,並且無法看到問題所在。有沒有人有任何這個問題的經驗,是什麼原因造成的?主要在我的NSOperation子類中不叫
經過瘋狂試圖找到問題後,我決定從頭開始,重建我的課堂,並在每一步測試它。在頭文件中,我將它聲明爲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
這將有助於看到@接口部分,以確保您的子類得當 – Andrew 2011-05-23 19:52:05
我建回從頭開始,但這次以不同的順序,它的工作原理......但是,無論如何,如果有人注意到不正確的東西,我會粘貼@interface: – stifin 2011-05-23 21:17:24
你的'NSOperation'子類是併發的嗎?只有在操作是** not ** concurrent時,纔會自動調用-main。 – 2011-05-23 21:24:39