我创建了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];有效但我有问题要问。这个帖子告诉我,每个操作都应该发布,但是我的没有发布的操作仍然有效,如果我发布它,它会给我带来错误。如果我不释放,有什么副作用或发生什么事吗?或者我错过了什么步骤,导致它不能被释放?
任何帮助都将不胜感激。谢谢。
发布于 2016-01-07 04:14:14
注意,在您提供的链接中创建的项目不使用自动引用计数(ARC)。
没有理由不使用ARC在任何新的项目。使用ARC,您可以避免调用release、autorelease或retain的所有尝试。完成后,弧线将正确地释放添加的操作。
您在问题中发布的代码在内存管理方面是很好的,只要您使用ARC。而且,由于您正在获取调用release的错误,这意味着您使用的是ARC。
https://stackoverflow.com/questions/34647174
复制相似问题