2013-02-23 71 views
0

我几乎完成了我的应用程序的开发。该应用随机点退出,用户界面非常缓慢地冻结/加载。该应用程序没有ARC,我刚开始使用Xcode Instruments来修复内存问题。我正在考虑将整个项目移至ARC,但不知道这是否有帮助。另外,Instrument Allocations所提供的许多流程似乎并没有占用太多的内存。用户界面冻结时,加载和应用程序崩溃频繁

我需要找出提高我的应用程序效率的最佳方法。我对这方面的知识很少,并且阅读了关于如何做某些事情来提高效率的各种教程,我只是不知道从哪里开始。我应该转换为ARC吗?我应该专注于使用Xcode中的Allocations/Leaks/Profile Instruments吗?我知道它可能与我的应用程序有关,我只是不知道从哪里开始。任何一般的建议都会很棒!谢谢你们!

+1

ARC不会加快速度。对于一个真正的响应式界面,您应该将处理转移到背景中。 – CodaFi 2013-02-23 07:08:19

+0

因此,我应该制定自定义方法,而不是在viewdidappear和viewdidload中调用我的JSON订阅源/其他进程。 – Brandon 2013-02-23 07:09:55

+0

不仅如此。苹果在后台进行处理变得微不足道。您可以在低端使用GCD,在高端使用NSThread和NSOperation。最难的部分是选择你想要实现哪一个(或者使用混合,只记得带有线程的标准资源访问规则)。 – CodaFi 2013-02-23 07:11:36

回答

1

更改为ARC并不能帮助您,而不是专注于分配/泄漏。如果一次又一次地做某事,也尝试优化你的代码。另外,如果您使用同步Web服务调用,它也会冻结应用程序。

+0

谢谢。有没有一种标准的方法来使异步Web服务调用异步?还是我只需要去研究一下? – Brandon 2013-02-23 07:16:08

+0

对于异步Web请求,我建议使用[AFNetworking](https://github.com/AFNetworking/AFNetworking)。但是这个项目需要ARC工作。 – 2013-02-23 09:47:17

0

如果您的应用程序不是很大,我建议您将该项目移至ARC。使用ARC解决了许多开发人员在内存方面的错误。

当我们有ARC时,为什么不使用它?

另一件事是,如果有时间的过程。在后台线程中执行它们。