2009-08-25 113 views
1

我有什么,我不理解在iPhone上的内存管理一个简单的例子:另一个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]; 
    } 
} 

我希望得到的第一种方法中的内存泄漏,因为我的Alloc 10倍(或者是11 :)只有一个版本,但Instruments不报告任何错误?

我还是仪器正确?

谢谢克里斯。

回答

2

你不会得到泄漏,足够令人惊讶。请参阅:

Memory issue of NSString

+0

非常好。谢谢。啊哈 - 生活又回到了简单的逻辑:) – Chris 2009-08-25 07:29:32

+0

我第一次遇到这个问题,它也让我产生了一个循环。更是如此,因为我试图测试如何检测内存泄漏! – 2009-08-25 07:48:04

0

你应该得到你期望的内存泄漏。仪器的泄漏检测算法运行起来很昂贵,所以它只能在指定的时间量后执行(我认为它默认为10秒)。仪器在泄漏之前可能需要让应用程序运行一段时间。

+0

是的,谢谢,我已经完成并手动刷新。 – Chris 2009-08-25 07:28:37