我在基本的第一个申请中取得了很好的进展;我是App开发的新手,但已经有一段时间了。我试图找到一个对我来说没有意义的问题的答案。
我有一个UITableViewController
,其中有一个加号按钮,指向ModalViewController
;这要求用户用文本填写3个字段并选择“买或卖”,我在UI中设置为UISegmentedController
,第一个按钮说“买”,第二个按钮说“已卖”。
我添加三个文本字段值的类包含以下代码,当我单击“保存”时,它将返回UITableView
并显示键入的内容。
我想将细胞设置为Bought的一种颜色和Sold的一种颜色。我可以使用cellForRow等轻松地做到这一点。问题是数据模型和我需要帮助的代码。
我有一个包含以下实体的数据模型:
交易与人,场合和金额有关系。它还有一个“status”属性,它是UISegmentedControl
的结果。
我将这个设置为什么类型是我的第一个问题? BOOL?
接下来,我可以/应该使用哪种代码从用户那里获取该值并将其添加到数据库中?
这是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];
}
任何帮助都会受到大力赞赏!
答案 0 :(得分:1)
我将这个设置为什么类型是我的第一个问题? BOOL?
如果只有两个选项,则可以使用布尔值。如果您这样做,我建议将其名称更改为比status
更具说服力的名称,例如wasBought
。在我看来,使用枚举更好,就像在this answer中一样。
接下来,我可以/应该使用哪种代码来获取该值 用户并将其添加到数据库?
你可以这样做:
[transaction setValue:@(self.segmentedControl.selectedSegmentIndex == 0) forKey:@"wasBought"];
您可能还想了解subclassing NSManagedObject
's (section "Custom Managed Object Classes")。