gpt4 book ai didi

objective-c - Objective c 中对象的潜在泄漏

转载 作者:行者123 更新时间:2023-11-29 04:53:07 25 4
gpt4 key购买 nike

在我的应用程序中的 xml 解析方法中发现字符委托(delegate)方法,我使用以下代码

NSString *Str =  [[[NSString alloc] initWithString:foundString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] ;

if ([weekNames containsObject:elementName]) {
// if (!settings) {
// NSMutableDictionary *dict1=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"",@"no",@"بسم الله الرحمن الرحيم",@"surah",nil];

// [weekDict insertObject:dict1 atIndex:0];
//}
[array1 addObject:weekDict];
}
if ([elementName isEqualToString:@"DUA"]) {
[weekDict addObject:duaDict];
}
if ([elementName isEqualToString:@"NO"]) {
[duaDict setObject:Str forKey:@"no"];
}
if ([elementName isEqualToString:@"SURAH"]) {
[duaDict setObject:Str forKey:@"surah"];
}
foundString=nil;**

如果我在分析应用程序中使用此代码,我会遇到潜在的内存泄漏。如果我自动释放Str,它会释放太多次。为什么会出现这样的情况。请任何人帮助我。提前致谢

最佳答案

这个:

NSString *Str =  [[[NSString alloc] initWithString:foundString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]

确实应该是:

NSString *Str =  [foundString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

您现在所做的是创建(分配/初始化)一个新的 NSString,然后立即泄漏它,因为您从未真正保存过指针。事实证明,您从一开始就从未真正需要过 NSString。

关于objective-c - Objective c 中对象的潜在泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8484551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com