我创建了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告诉我每个操作都应该释放,但是我的没有释放仍然有效,如果我发布它会给我错误。如果我不释放,是否有任何副作用或会发生什么?或者是否有任何我错过的步骤导致它无法释放?
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
请注意,您提供的链接中创建的项目不使用自动引用计数(ARC)。
没有理由不在任何新项目中使用ARC。使用ARC,您可以避免调用release
或autorelease
或retain
的所有尝试。 ARC将在完成后正确释放添加的操作。
只要您使用ARC,您在问题中发布的代码就内存管理而言就可以了。由于您在尝试拨打release
时遇到错误,这意味着您正在使用ARC。