我在基本的第一个应用程序中进展良好;我对应用程序开发相当陌生,但是已经从事了一段时间。我试图找到一个对我来说毫无意义的答案。
我有一个UITableViewController
,其中有一个加号按钮指向ModalViewController
;这要求用户在3个字段中填写文字,然后选择“已购买或已出售”(我已将其设置为UI中的UISegmentedController
),第一个按钮为“已购买”,第二个按钮为“已出售”。
我的用于添加三个文本字段的值的类包含以下代码,当我单击“保存”时,它返回到UITableView
并显示键入的内容。
我想将单元格设置为“购买”一种颜色和“售出”一种颜色。我可以使用cellForRow等轻松完成此操作。问题是数据模型和需要帮助的代码。
我有一个包含以下实体的数据模型:
交易,人员,场合和金额
交易与人,场合和金额有关系。它还具有“状态”属性,该属性是UISegmentedControl
的结果。
我将第一个问题设置为哪种类型?布尔?
接下来,我可以/应该使用哪种代码从用户那里获得该值并将其添加到数据库中?
这是textFields的当前保存方法:
- (IBAction)save:(id)sender
{
NSManagedObjectContext *context = [self managedObjectContext];
NSManagedObject *transaction = [NSEntityDescription insertNewObjectForEntityForName:@"Transaction" inManagedObjectContext:context];
NSManagedObject *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:context];
NSManagedObject *occasionEvent = [NSEntityDescription insertNewObjectForEntityForName:@"Occasion" inManagedObjectContext:context];
NSManagedObject *amountType = [NSEntityDescription insertNewObjectForEntityForName:@"Gift" inManagedObjectContext:context];
[person setValue:self.nameTextField.text forKey:@"name"];
[occasionEvent setValue:self.occasionTextField.text forKey:@"title"];
[amountType setValue:self.amountTextField.text forKey:@"amount"];
[transaction setValue:person forKey:@"whoBy"];
[transaction setValue:occasionEvent forKey:@"occasion"];
[transaction setValue:amountType forKey:@"gifting"];
NSError *error = nil;
if (![context save:&error])
{
NSLog(@"Can't save! %@ %@", error, [error localizedDescription]);
}
[self dismissViewControllerAnimated:YES completion:nil];
}
任何帮助将不胜感激!
最佳答案
我将第一个问题设置为哪种类型?布尔?
如果只有两个选项,则可以使用布尔值。如果这样做,我建议将其名称更改为比status
更具说服力的名称,例如wasBought
。我认为最好使用枚举,如this answer中所示。
接下来,我可以/应该使用哪种类型的代码从
用户并将其添加到数据库?
您可以执行以下操作:
[transaction setValue:@(self.segmentedControl.selectedSegmentIndex == 0) forKey:@"wasBought"];
您可能还想阅读有关subclassing
NSManagedObject
's (section "Custom Managed Object Classes")的信息。