0

我正在以字符串格式将数据收集到一个数组中,其中一项大约是 30 个字符。数据收集完成后,我尝试将所有字符串组合成一个大字符串,然后将其写入文件。组合字符串是在 for 循环中完成的,当数据项数量超过 4000 时,它会导致设备崩溃。是什么原因造成的,如何解决?这是我用于附加字符串的代码:

NSString *content = @"";

for (int i=0; i<self.log.count; i++)
{
    content = [[content stringByAppendingString:@""] stringByAppendingString:(self.log)[i]];
}
4

3 回答 3

3

如果您试图将数组转换为字符串,则有一种更简单的方法:

NSString *content = [self.log componentsJoinedByString:@" "];
于 2013-06-03T08:16:15.520 回答
-1

尝试这个...

NSString *content = @"";

for (int i=0; i<self.log.count; i++)
{
    content = [[content stringByAppendingString:@""] stringByAppendingString:[NSString stringWithFormat:@"%@",(self.log)[i]]];
}
于 2013-06-03T08:18:57.870 回答
-1

为了确保分配所需的内存量,我建议您使用带有 init 长度的可变字符串。

-(NSString*)concantString:(NSArray *)incomingLog {
    int calculatedLength = 0;
    for (int i=0; i < [incomingLog count]; i++)
    {
        calculatedLength += [incomingLog[i] length];
    }

    NSMutableString *content = [[NSMutableString alloc] initWithCapacity:calculatedLength];
    for (int i=0; i < [incomingLog count]; i++)
    {
        content = (NSMutableString*)[[content stringByAppendingString:@""] stringByAppendingString:incomingLog[i] ] ;
    }
    return content;
}
于 2013-06-03T08:33:14.957 回答