我只是通过创建费用跟踪器应用来学习核心数据。我有2个实体,类别和交易。类别可以包含许多事务,并且模型可以正确创建。
我有一个选择器为我的AddTransactionViewController选择类别。当按下“保存”按钮时,我使用以下代码保存我的交易
_savedTransaction.type = [_pickerCategories objectAtIndex:[_picker selectedRowInComponent:0]];
_savedTransaction.timestamp = [NSDate date];
_savedTransaction.amount = transactionAmount.text
_savedTransaction.category = _transactionCategory;
我确信我正在使用我的保存做一些愚蠢的事情,因为我记录时_savedTransaction.category
正在返回null
。其他参数正确记录,因此保存了事务...
如何从picker设置的值存储transactionCategory?
答案 0 :(得分:0)
您必须将选择器视图的值传递给您的类别
_savedTransaction.category = [_pickerCategories objectAtIndex:[_ picker selectedRowInComponent:0]];
答案 1 :(得分:0)
打开您的.xcdatamodeld
文件,点击您的savedTransaction
实体,然后将其category
媒体资源类型更改为NSString
。修改CoreData
后,您必须从设备/模拟器中删除现有应用程序并再次运行/安装。然后只需使用以下逻辑
_savedTransaction.category = [_pickerCategories objectAtIndex:[_picker selectedRowInComponent:0]];
并且应该将您的类别保存为字符串。
如果您希望仅保存类别的索引而不是名称作为字符串,也可以将类别属性类型更改为integer 16
。在这种情况下,只需将其保存为
_savedTransaction.category = [NSNumber numberWithInt:[_picker selectedRowInComponent:0]];