我对iPhone开发非常陌生,在我对内存管理的理解上遇到了障碍。我在上读过很多问题和答案,但是还没有找到完整的答案。
如果我有一个创建对象的实例方法,那么我看到的每个示例似乎都使用了一个自动释放调用:
-(NSArray *)findThings {
NSArray* things = [[[NSArray alloc] init] autorelease];
// add some lovely things to my shiny new array
return things;
}
忘记了精心设计的示例,我所读到的关于iPhone开发最佳实践的所有内容都表明,不鼓
多亏了我在SO上得到的很多帮助,我得到了一个算法来检查大约15,000个8字母单词的部分字形列表,而不是大约50,000个单词的列表(所以我假设总共有1.08亿次迭代)。每次比较我都会调用一次此方法(因此调用次数为7.5亿次)。我得到了以下错误,总是在第119次迭代到1350次迭代中的某个地方:
AnagramFINAL(2960,0xac8c7a28) malloc: *** mmap(size=2097152) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc
我收到了两个内存警告。它不显示警告级别。它显示了简短的短语:
Received memory warning.
Received memory warning.
我收到了内存警告,几秒钟后我的应用程序崩溃了。我的应用程序是否因为收到内存警告而崩溃?
我知道内存警告级别2会杀死自动释放对象。没有任何级别指示的内存警告会杀死自动释放对象吗?