У меня здесь странная проблема, и я уверен, что это просто что-то маленькое.
Я получаю информацию о файлах через JSON (RestKit делает свою работу хорошо). Я записываю размер каждого файла через coredata в локальное хранилище.
После этого в одном из моих контроллеров просмотра мне нужно суммировать размеры всех файлов в базе данных. Я извлекаю все файлы, а затем иду по склону (для), чтобы суммировать размер.
Проблема в том, что результат всегда отрицательный!
Размер файла объекта coredata имеет тип Integer 32 (размер файла сообщается в байтах JSON). Я читаю fetchresult в NSArray allPublicationsToLoad
, а затем пытаюсь подвести итог. Объекты в NSArray типа CDPublication
имеют значение filesize
типа NSNumber:
for(int n = 0; n < [allPublicationsToLoad count]; n = n + 1)
{
CDPublication* thePub = [allPublicationsToLoad objectAtIndex:n];
allPublicationsSize = allPublicationsSize + [[thePub filesize] integerValue];
sum = [NSNumber numberWithFloat:([sum floatValue] + [[thePub filesize] floatValue])];
Каждый отдельный файл одного объекта CDPublications является положительным и правильным. Только сумма всех файлов после этого становится отрицательной. Сейчас существует около 240 объектов со значениями размера файла от 4000 до 234.645.434.123.
Может кто-нибудь, пожалуйста, дайте мне удар в правильном направлении!? Проблема в том, что Integer 32 или NSNumber не могут содержать такой огромный диапазон?
Спасибо
MadMaxApp }