当我为长度为50000的数组运行此函数时,我有一个将数组转换为字符串的函数,我的应用程序崩溃并且消息说由于内存错误而终止。这是我下面给出的功能。
-(NSString*)getStringFromArray:(NSMutableArray*)array
{
NSString* resultantString = [array objectAtIndex:0];
for (int i = 1; i < [array count]; i ++)
{
resultantString = [NSString stringWithFormat:@"%@ %@", resultantString, [array objectAtIndex:i]];
}
return resultantString;
}
您可以尝试使用NSMutableString而不是NSString的倍数,因此最后转换为NSString
像这样:
-(NSString*)getStringFromArray:(NSMutableArray*)array
{
//NSString* resultantString = [array objectAtIndex:0];
NSMutableString * buffer = [[NSMutableString alloc] init];
for (int i = 0; i < [array count]; i ++)
{
//resultantString = [NSString stringWithFormat:@"%@ %@", resultantString, [array objectAtIndex:i]];
[buffer appendString:[array objectAtIndex:i]];
}
NSString *resultantString = [[buffer copy] autorelease];
return resultantString;
}
未检查代码,因为我不在Mac中进行此操作,但这就是想法
我希望这有帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句