Core Data使用过滤器NSPredicate从文本字段创建新的UIView

时间:2012-07-23 13:33:54

标签: objective-c uiview uiviewcontroller nspredicate

我在如何实现从所选数据库及其属性组创建新视图方面遇到了一些问题。在我的应用程序中,所有资源(数据)都显示在mainviewController.xib中。在第二个viewController中,我有文本字段将数据添加到我的基础。在这个文本字段是组。我想在我的基地写一个新组时添加新视图。当我的团体名称与我的实际基础相同时,我什么都不做。在这里,我给出了一些我使用的代码。在我的代码中是grupa作为组。此代码来自第二个视图。

- (IBAction) saveData
{
    NSLog(@"saveData");
    [self dismissKeyboard];
    Destination *dest = (Destination *)[NSEntityDescription insertNewObjectForEntityForName:@"Destination" 
                                                                     inManagedObjectContext:managedObjectContext];
    dest.nazwa = nazwaTextField.text;
    dest.zasob = zasobTextField.text;
    dest.grupa = grupaTextField.text;
    dest.typzasobu = typzasobuTextField.text;
    dest.tag = [NSNumber numberWithInt:[_arrayLogics indexOfObject:typzasobuTextField.text]];

    NSError *error;

    // here's where the actual save happens, and if it doesn't we print something out to the console
    if (![managedObjectContext save:&error])
    {
        NSLog(@"Problem saving: %@", [error localizedDescription]);
    }

    // **** log objects currently in database ****
    // create fetch object, this object fetch's the objects out of the database
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Destination" inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];
    NSArray *fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

    for (NSManagedObject *info in fetchedObjects)
    {
        NSLog(@"Nazwa Zasobu: %@", [info valueForKey:@"nazwa"]);
        NSLog(@"Zasób: %@", [info valueForKey:@"zasob"]);
        NSLog(@"Grupa: %@", [info valueForKey:@"grupa"]);
        NSLog(@"Typ zasobu: %@", [info valueForKey:@"typzasobu"]);
    }


    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Potwierdzenie" message:@"Zasób zapisany" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
    [alert show];   

}

感谢

1 个答案:

答案 0 :(得分:0)

认为我理解......

  • 您的主要视图中有一份资源(Zasób)列表。
  • 这些资源按“Grupa”字段分组。
  • 您有另一个viewController,您可以在其中添加/编辑资源。

如果我错了,请纠正我,但我认为您希望主视图看起来非常像这样: enter image description here

如果这是正确的,我建议您使用UITableViewController的表格样式查看UITableViewUITableViewStyleGrouped。这样,您就可以按照Apple推荐的方式添加/编辑资源列表。

流程看起来像这样: enter image description here

您需要了解NSSortDescriptor's(从数据存储区订购您的提取),以及如何插入您的表格data source& delegate methods但是值得的

以下是一些可以帮助您获取知识的资源: