主要在我的NSOperation子类中不叫

问题描述:

我子类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 
+1

这将有助于看到@接口部分,以确保您的子类得当 – Andrew 2011-05-23 19:52:05

+0

我建回从头开始,但这次以不同的顺序,它的工作原理......但是,无论如何,如果有人注意到不正确的东西,我会粘贴@interface: – stifin 2011-05-23 21:17:24

+0

你的'NSOperation'子类是并发的吗?只有在操作是** not ** concurrent时,才会自动调用-main。 – 2011-05-23 21:24:39

我过这种情况了。像往常一样,它是我:我没有初始化OperationQueue操作运行。

我刚才遇到这个问题。 1)初始化OperationQueue 2)您的操作添加到此队列 3)清理项目 4)运行