我在基本的第一个应用程序中进展良好;我对应用程序开发相当陌生,但是已经从事了一段时间。我试图找到一个对我来说毫无意义的答案。

我有一个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")的信息。

07-25 23:03
查看更多