2015-03-19 1 views
0

Я реализовал парсер 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 элемент массива, все безрезультатно. Кажется, он принимает строковые данные первого свойства без каких-либо претензий. Я подозреваю, что это простое решение, но я в тупике. Я ценю любые идеи или комментарии.

ответ

0

'(0)' - это строка, а pageNum - целое число. Попробуйте

@([currentRow[1] integerValue]) 

Редактировать: Похоже, что ваш метод init принимает словарь и словари нуждаются в объектах. Вам нужно будет перейти к реализации метода и использовать его

[object[@"pageNum"] integerValue] 
+0

Это была одна из вещей, которые я пробовал. Я получаю сообщение об ошибке '' Элемент коллекции типа 'NSInteger' (aka 'int') не является объектом Objective-C. "' – bluesmoke

+0

Вам нужно будет обернуть это 'NSInteger' в # NSNumber' – segiddins

+0

@segiddins good call – Alex

 Смежные вопросы

  • Нет связанных вопросов^_^