0

我是 iOS 编程新手,最近在内存管理方面学到了宝贵的一课。我解决了我的问题,但我不确定这是否是正确的方法。

UserFetcher *userFetcher = [[UserFetcher alloc] init];
[userFetcher setDelegate: self];
[userFetcher fetchData];

在这段代码中,userFetcher 使用RestKit 对外部服务器进行REST 调用,即UserFetcher 包装了RestKit。当 Restkit 将值返回给 userFetcher 时,由于 userFetcher 已被销毁,因此会引发错误。发生这种情况是因为创建 UserFetcher 的父方法(上面的代码)完成执行,并且我假设 ARC 将其释放。

我通过创建类型(强,非原子)的私有属性 UserFetcher 解决了这个问题。我想知道这是否是解决问题的最佳方法?或者我的设计可以改进吗?

4

1 回答 1

0

你解决得很好。您需要对该对象的强引用。当你确定完成后,“userFetcher=nil;” 将释放它。

于 2012-07-15T13:04:59.453 回答