RestKit:setBaseURL 导致内存泄漏
Posted
技术标签:
【中文标题】RestKit:setBaseURL 导致内存泄漏【英文标题】:RestKit: setBaseURL causes memory leaks 【发布时间】:2011-12-24 14:34:26 【问题描述】:我正在尝试使用 RestKit 从网络获取一些信息。 这是我的代码:
(void)getTestData:(NSString *)baseURL
[[RKClient sharedClient] setBaseURL:baseURL];
[[RKClient sharedClient] get:@"/TestData" delegate:self];
但我发现当我使用“setBaseURL”时,内存泄漏。
我能做些什么来解决这个问题?
【问题讨论】:
如果我注释 setBaseURL 行,则没有内存泄漏。所以我怀疑 setBaseURL 方法是否会导致内存泄漏。在我的应用程序中,我需要使用不同的 URL...谢谢您的帮助! 【参考方案1】:也许您可以在初始化应用程序时使用 clientWithBaseURL 方法:
RKClient *client = [RKClient clientWithBaseURL:@"http://restkit.org"];
但如果您需要使用多个 URL,这将无济于事。
如果您只使用一个 URL,请不要将 URL 设置为用于 GET/POST... 数据的所有方法,而应仅在带有 clientWithBaseURL 的应用程序初始化中。
希望对你有帮助。
【讨论】:
感谢您的帮助!我在初始化我的应用程序时使用了 clientWithBaseURL 方法。但在我的应用程序中,我需要使用不同的 URL。所以我对这个问题感到困惑。有没有更好的方法?再次感谢您! 尝试使用“Instrument”查看witch对象导致的内存泄漏。当你调用metod时你能告诉我们你的代码吗: -(void)getTestData:(NSString *)baseURL; ? 另一种解决方案,使用 clientWithBaseURL 创建新的 RKClient 实例,并在使用 setSharedClient 方法替换 RKClient 的当前共享实例后,thix 方法释放以前的实例。 我通过在RKReachabilityObserver.m文件的initWithHostName方法中添加_hostName属性的释放解决了这个问题。我不确定它是否正确,但现在确实没有泄漏。谢谢!以上是关于RestKit:setBaseURL 导致内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章