0

我在基本的第一个应用程序中进展顺利;我对应用程序开发相当陌生,但已经研究了很长时间。我试图找到一个对我来说没有意义的问题的答案。

我有一个单曲UITableViewController,它有一个指向ModalViewController;的加号按钮。这要求用户用文本填写 3 个字段,然后选择我UISegmentedController在 UI 中设置的“购买或出售”,第一个按钮显示“购买”,第二个按钮显示“已出售”。

我用于添加三个文本字段的值的类包含以下代码,当我单击保存时,它返回UITableView并显示键入的内容。

我想将单元格设置为已购买的一种颜色和已售的一种颜色。我可以使用 cellForRow 等轻松做到这一点。问题是我需要帮助的数据模型和代码。

我有一个包含以下实体的数据模型:

  • 交易、人、场合和金额

Transaction 与 Person、Occasion 和 Amount 有关系。它还有一个“状态”属性,它是UISegmentedControl.

我将其设置为什么类型是我的第一个问题?布尔?

接下来,我可以/应该使用什么样的代码从用户那里获取该值并将其添加到数据库中?

这是文本字段的当前保存方法:

- (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];   
}

任何帮助将不胜感激!

4

1 回答 1

1

我将其设置为什么类型是我的第一个问题?布尔?

如果只有两个选项,您可以使用布尔值。如果您这样做,我建议将其名称更改为比例status如更能说明问题的名称wasBought。在我看来,使用枚举会更好,就像在这个答案中一样。

接下来,我可以/应该使用什么样的代码从用户那里获取该值并将其添加到数据库中?

你可以这样做:

[transaction setValue:@(self.segmentedControl.selectedSegmentIndex == 0) forKey:@"wasBought"];

您可能还想了解子类化NSManagedObject(“自定义托管对象类”部分)

于 2013-10-14T15:24:29.687 回答