У меня проблема с хранением основных данных (я выбрал int16, потому что у них максимум 6 знаков).Целое значение Целочисленное значение?
моя модель имеет
Entity: 'Expense'
the attribute in question is:
@property (nonatomic, retain) NSNumber * month;
был автоматически реализован в виде NSNumber по Xcode (Редактор> createManagedmodelsubclass)
месяц проводит короткий идентификатор для каждого месяца. Пример
201203 //would be march of 2012
я хранить новые объекты с этим фрагментом:
[newExpense setValue:monthNumber forKey:@"month"];
, который работает просто отлично. monthNumber всегда имеет правильное значение, прежде чем я его сохраню.
Я извлекаю объекты с помощью метода выборки и сохраняю их в массиве с именем allExpenses
. количество массивов истинно, и у меня есть правильное количество сущностей в нем.
теперь я это сделать:
NSMutableArray *thisMonthExpenses = [[NSMutableArray alloc]init ];
for (Expense *entity in allExpenses) {
int tempMonth = [[entity month]intValue];
if (tempMonth == month) {
[thisMonthExpenses addObject:entity];
}
}
, чтобы отфильтровать нужные объекты, которые принадлежат к текущему месяцу.
month // is an integer that holds the encoded month (again: correctly!)
но почему-то код:
int tempMonth = [[entity month]intValue];
не возвращает 201203, но strangly 4595 (всегда то же значение).
то же самое происходит с этим кодом:
for (Expense *entity in monthExpenses) {
if ([entity day].intValue == todayNumber.intValue) { //HERE ENTITY DAY.INTVALUE RETURNS A COMPLETELY WRONG INTEGER!
[thisDayExpenses addObject:entity];
}
}
я, кажется, что-то не хватает - но я не могу понять, что, я попытался около 2 часов в настоящее время и всегда получить неверное значение ИНТ после прочтения моих объектов ..
любые идеи?
Действительно ли месяцNumber определен NSNumber, когда вы назначаете это значение для управляемого объекта? Вы не показываете происхождение, возможно, его нужно вставить в коробку? – isaac
Например: [newExpense setMonth: [Номер NSNumberWithInt: monthNumber]]; – isaac
Я тоже пробовал это @isaac. но это не имеет никакого значения. я все еще получаю неправильный int, возвращенный при попытке проверить его:/ –