Я реализовал парсер CHCSV и метод делегата для него возвращает NSMutableArray с именем currentRow
для каждой строки исходного CSV-файла. Если я NSLog массива после разбора строки, я вижу, что текстовые элементы в массиве цитируются, а числа (целые) - голые. Выход журнала currentRow
выглядит так: ("urgent_needs",0,0,0,1,"",YES,YES)
.Как поместить значение из массива Parser CHCSV в свойство объекта Realm?
ОК, так что мне нужно, чтобы получить эти значения в объект Realm данных, которая определяется следующим образом:
@interface Tile : RLMObject
@property NSString *wordKey;
@property NSInteger pageNum;
@property NSInteger viewNum;
@property NSInteger viewItemNum;
@property NSInteger targetPageNum;
@property BOOL enqueue;
@property BOOL playAudio;
@property NSString *action;
@end
Я использую следующий код, чтобы попытаться настройки свойств объекта:
[realm beginWriteTransaction];
[Tile createInRealm:realm withObject:@{@"wordKey": currentRow[0],
@"pageNum": currentRow[1],
@"viewNum": currentRow[2],
@"viewItemNum": currentRow[3],
@"targetPageNum": currentRow[4],
@"action": currentRow[5],
@"enqueue": currentRow[6],
@"playAudio": currentRow[7]}
];
[realm commitWriteTransaction];
Когда я запускаю этот код я получаю следующее исключение:
Error adding data object: Invalid value '(0)' for property 'pageNum'
Я попробовал несколько способов Casti элемент массива, все безрезультатно. Кажется, он принимает строковые данные первого свойства без каких-либо претензий. Я подозреваю, что это простое решение, но я в тупике. Я ценю любые идеи или комментарии.
Это была одна из вещей, которые я пробовал. Я получаю сообщение об ошибке '' Элемент коллекции типа 'NSInteger' (aka 'int') не является объектом Objective-C. "' – bluesmoke
Вам нужно будет обернуть это 'NSInteger' в # NSNumber' – segiddins
@segiddins good call – Alex