Мой код, приведенный ниже, приводит к тому, что мое приложение завершает работу, т.е. получает черный экран и затем видит в консоли отладчика: Программа получила сигнал: «0».
В основном это вызывает проблемы, когда мой orderArray имеет счет 2000 или более. Я использую iPhone 3GS с iOS 4.2
Вопрос: Есть ли более эффективный и менее потребляющий память способ создания моего long outStr?
NSString *outStr = @"";
for (int i = 0; i < count; i++) {
NSDictionary *dict = [[ARAppDelegate sharedAppDelegate].orderArray objectAtIndex:i];
outStr = [outStr stringByAppendingFormat:@"%@,%@,%@,%@\n",
[dict valueForKey:@"CODE"],
[dict valueForKey:@"QTY"],
[[ARAppDelegate sharedAppDelegate].descDict valueForKey:[dict valueForKey:@"CODE"]],
[[ARAppDelegate sharedAppDelegate].priceDict valueForKey:[dict valueForKey:@"CODE"]]];
}
Обновление: спасибо очень добрым людям, которые помогли, ниже мой модифицированный код:
NSArray *orderA = [ARAppDelegate sharedAppDelegate].orderArray;
NSDictionary *descD = [ARAppDelegate sharedAppDelegate].descDict;
NSDictionary *priceD = [ARAppDelegate sharedAppDelegate].priceDict;
NSMutableString *outStr = [[[NSMutableString alloc] init] autorelease];
for (int i = 0; i < [orderA count]; i++) {
NSDictionary *dict = [orderA objectAtIndex:i];
NSString *code = [dict valueForKey:@"CODE"];
[outStr appendFormat:@"%@,%@,%@,%@\n",
code,
[dict valueForKey:@"QTY"],
[descD valueForKey:code],
[priceD valueForKey:code]];
}
[self emailTxtFile:[NSString stringWithString:outStr]];
// Это достигает конца метода