如何将 CSV 解析数组中的值放入领域对象 属性?
How to Put a Value From a CHCSV Parser Array Into a Realm Object Property?
我已经为源 CSV 文件的每一行实现了一个 CHCSV 解析器和它的委托方法 returns 一个名为 currentRow
的 NSMutableArray。如果我在解析一行后对数组进行 NSLog,我可以看到数组中的文本项被引用并且数字(整数)是裸露的。 currentRow
的日志输出如下所示:("urgent_needs",0,0,0,1,"",YES,YES)
.
好的,所以我需要将这些值放入一个定义如下的 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'
我尝试了几种转换数组元素的方法,但都无济于事。它似乎毫无怨言地接受了第一个 属性 的字符串数据。我怀疑这是一个简单的解决方案,但我很难过。我很感激任何想法或评论。
'(0)' 是一个字符串,pageNum 是一个整数。尝试
@([currentRow[1] integerValue])
编辑:您的 init 方法似乎需要字典,而字典需要对象。您将不得不进入该方法的实现并让它使用
[object[@"pageNum"] integerValue]
我已经为源 CSV 文件的每一行实现了一个 CHCSV 解析器和它的委托方法 returns 一个名为 currentRow
的 NSMutableArray。如果我在解析一行后对数组进行 NSLog,我可以看到数组中的文本项被引用并且数字(整数)是裸露的。 currentRow
的日志输出如下所示:("urgent_needs",0,0,0,1,"",YES,YES)
.
好的,所以我需要将这些值放入一个定义如下的 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'
我尝试了几种转换数组元素的方法,但都无济于事。它似乎毫无怨言地接受了第一个 属性 的字符串数据。我怀疑这是一个简单的解决方案,但我很难过。我很感激任何想法或评论。
'(0)' 是一个字符串,pageNum 是一个整数。尝试
@([currentRow[1] integerValue])
编辑:您的 init 方法似乎需要字典,而字典需要对象。您将不得不进入该方法的实现并让它使用
[object[@"pageNum"] integerValue]