基础NSCFString中的内存泄漏。 NSString已创建并已发布。仍然泄漏

时间:2011-07-26 18:53:57

标签: iphone xcode cocoa-touch memory-management memory-leaks

我从这段代码中得到了泄漏的NSCFString。我知道它与NSString有关,但我不明白泄漏是如何发生的。感谢您的帮助...

-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark{

    NSString *pTitle = [[NSString alloc] initWithString:placemark.title];

    mapView.userLocation.title = pTitle;
    [pTitle release];


}

2 个答案:

答案 0 :(得分:3)

您是否也在泄漏地图视图?在这种情况下,报告的此字符串泄漏只是通过泄漏的地图视图的扩展。

最常泄露的对象通常不是罪魁祸首。罪魁祸首通常是一个单独的对象,持有十几个最泄漏的对象。

此外,您可以将代码缩减为:

-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark {
    mapView.userLocaltion.title = placemark.title;
}

不需要时不需要进行内存管理:)。

答案 1 :(得分:0)

Apple的框架伙伴中有很多错误..不要担心框架漏洞。

请遵守您身边的规则。对于每个alloccopyretain,必须有相应的release

iOS也以完全不同的方式处理NSString。所以最好坚持使用规则。

希望它有所帮助..