我是 iOS 编程新手,最近在内存管理方面学到了宝贵的一课。我解决了我的问题,但我不确定这是否是正确的方法。
UserFetcher *userFetcher = [[UserFetcher alloc] init];
[userFetcher setDelegate: self];
[userFetcher fetchData];
在这段代码中,userFetcher 使用RestKit 对外部服务器进行REST 调用,即UserFetcher 包装了RestKit。当 Restkit 将值返回给 userFetcher 时,由于 userFetcher 已被销毁,因此会引发错误。发生这种情况是因为创建 UserFetcher 的父方法(上面的代码)完成执行,并且我假设 ARC 将其释放。
我通过创建类型(强,非原子)的私有属性 UserFetcher 解决了这个问题。我想知道这是否是解决问题的最佳方法?或者我的设计可以改进吗?