【发布时间】:2012-05-07 15:58:39
【问题描述】:
我已经尝试了解我的代码有什么问题 2 天了。希望你有什么想法?
我正在尝试创建一个 NSOperationQueue 作为“全局”队列,以允许我从该 viewController 中的任何方法添加操作。在我尝试在 .h 文件中定义队列以使其成为全局队列之前,我在最初需要它的方法中创建了它,并且能够添加操作。这运作良好。但是后来我想从原始方法之外检查队列内部是否有任何活动操作,我显然不能,因为我在方法内部声明了它。所以我尝试使用以下代码在 .h 中声明它:
@property (strong, nonatomic) NSOperationQueue *queue;
在.m的顶部:
@synthesize queue;
这是我将操作添加到队列的代码。
NSInvocationOperation *doMorse = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(morse) object:nil];
[self.queue addOperation:doMorse];
问题是当我尝试添加操作时队列保持为空。 (以前可以正常工作。)我是否声明了队列错误?顺便说一句,有没有比我尝试过的更好的解决方案可以通过任何方法访问队列? (在同一个 viewController 中(如果它可以从任何视图工作,那就太棒了:-)))。
非常感谢!
【问题讨论】:
-
如果您正在运行 ARC,则默认情况下 ivars 很强大。但是属性很弱,请确保您声明您的属性为强或保留旧学校
标签: objective-c xcode global nsoperation nsoperationqueue