NSInvocationOperation对象发布

时间:2016-01-07 04:05:42

标签: objective-c nsoperation nsoperationqueue

我创建了NSInvocationOperationQueue对象,然后将其添加到我的NSOperationQueue实例中。

operationQueue = [NSOperationQueue new];

NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(counterTask) object:nil];

[operationQueue addOperation:operation];

operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(colorRotatorTask) object:nil];
[operationQueue addOperation:operation];

它有效,但我有疑问。这个post告诉我每个操作都应该释放,但是我的没有释放仍然有效,如果我发布它会给我错误。如果我不释放,是否有任何副作用或会发生什么?或者是否有任何我错过的步骤导致它无法释放?

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

请注意,您提供的链接中创建的项目不使用自动引用计数(ARC)。

没有理由不在任何新项目中使用ARC。使用ARC,您可以避免调用releaseautoreleaseretain的所有尝试。 ARC将在完成后正确释放添加的操作。

只要您使用ARC,您在问题中发布的代码就内存管理而言就可以了。由于您在尝试拨打release时遇到错误,这意味着您正在使用ARC。