Вместо этого используйте:
- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator
, оно охватывает несколько различных символов новой строки.
Пример:
NSArray *values = [fileContents componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
for (NSString *lineStr in values) {
// Parsing code here
}
ALso seperatedValues
переполнен.Сначала создается с помощью alloc init, затем на следующей строке он заменяется методом componentsSeparatedByString
.Итак, первая потеря потеряна без освобождения, это утечка.Позже seperatedValues
, созданный componentsSeparatedByString
, освобождается, но componentsSeparatedByString
автоматически освобождает его, что является переизбытком;
Решите все проблемы сохранения / освобождения / автоматического выпуска с ARC (Автоматический подсчет ссылок).
Вот версия, которая использует удобные методы и опускается при выпуске:
NSArray *values = [fileContents componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
for (NSString *lineStr in values) {
NSArray *seperatedValues = [lineStr componentsSeparatedByString:@","];
NSString *key = [seperatedValues objectAtIndex:0];
NSDictionary *valuesDic = [NSDictionary dictionaryWithObject:seperatedValues forKey:key];
[parsedValues addObject:valuesDic];
}
NSLog(@"parsedValues---%@",parsedValues);