【问题标题】:Another iPhone memory leak question!另一个 iPhone 内存泄漏问题!
【发布时间】:2009-08-25 06:20:08
【问题描述】:

我有一个简单的例子说明我不了解 iPhone 上的内存管理:

- (IBAction)AssignAndReleaseOne :(id)sender {
    for (int i=0;i<10;i++) {
        someString = [[NSString alloc] initWithString:@"String Assigned"];
    }
    [someString release];
}

- (IBAction)AssignAndReleaseTen :(id)sender {
    for (int i=0;i<10;i++) {
        someString = [[NSString alloc] initWithString:@"String Assigned"];
        [someString release];
    }
}

我预计在第一种方法中会出现内存泄漏,因为我只分配了 10 次(或者是 11 次:),只有一个版本,但 Instruments 没有报告任何错误?

我或仪器是否正确?

谢谢克里斯。

【问题讨论】:

    标签: iphone memory-leaks


    【解决方案1】:

    令人惊讶的是,您不会泄漏。见:

    Memory issue of NSString

    【讨论】:

    • 优秀。谢谢。啊——生活又回到了美好的简单逻辑:)
    • 我第一次遇到这个问题时,它也让我陷入了循环。更是如此,因为我试图测试如何检测内存泄漏!
    【解决方案2】:

    你应该得到你所期望的内存泄漏。

    Instruments 的泄漏检测算法运行起来很昂贵,所以它只在指定的时间后执行(我认为它默认为 10 秒)。在 Instruments 发现泄漏之前,您可能需要让应用程序运行一段时间。

    【讨论】:

      猜你喜欢
      • 2011-11-12
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多