如何传递选择器的值来选择我的实体

时间:2014-06-01 08:00:57

标签: ios core-data

我只是通过创建费用跟踪器应用来学习核心数据。我有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?

2 个答案:

答案 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]];