我可以在ios (ARC)中创建一个具有块的函数调用的对象,而不是在最后设置为null吗?它会有内存泄漏吗?
下面是一个示例代码:WebService *webService = [[WebService alloc] init];
[webService request:getPriceSheet callbackBlock:^(BaseResponseMsg *responseMsg){
...
}];
WebService对象何时被释放?这里有内存泄漏吗?在调用块之后,它是否被释放了?
我是否需要把对象放在一个属性中,以便当视图控制器离开时它会释放?
在不知道request:callbackBlock:
做什么的情况下,webService
可能在当前作用域结束时被释放,并且回调将永远不会执行。
request:callbackBlock:
这样的方法会将webService对象间接地放入队列中,或者作为临时强保留的委托给另一个进程。当webService不再被request
相关的基础设施引用时,它将被发布。
对此持保留态度。如果不知道request:callbackBlock:
的特性,就不可能知道谁保留了对webService
的引用。