Загрузить строковое свойство объектов CoreData в UIPickerView - PullRequest
1 голос
/ 16 марта 2010

В настоящее время у меня есть сущность с именем «События» в приложении CoreData. «Events» имеет одно строковое свойство с именем «eventName».

В - (void) viewDidLoad я пытаюсь извлечь все объекты "События" и загрузить их "имя_ события" в алфавитном порядке в UIPickerView.

Конечной конечной целью является использование textField, кнопок и pickerView, которые добавляют новые объекты и удаляют ненужные объекты. По сути, превращение UIPickerView в UITableView. В настоящее время я могу сохранять объекты в хранилище CoreData, но не могу вытащить их / их свойства в UIPickerView.

Я хочу и могу поделиться исходным кодом проекта с любым, кто захочет, или готов посмотреть на него, чтобы помочь.

спасибо Chris

1 Ответ

1 голос
/ 17 марта 2010
-(void)update
{   
    NSMutableArray *array2 = [[NSMutableArray alloc] init];

    CDPickerAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *moc = [appDelegate managedObjectContext];
    NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:moc];
    NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
    [request setEntity:entityDescription];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"callName" ascending:YES];
    [request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
    [sortDescriptor release];

    NSArray *array = [moc executeFetchRequest:request error:&error];

    for (int i=0; i<array.count; i++) {     
        Event *theEvent = [array objectAtIndex:i];

        NSString *StringOne = [NSString stringWithFormat:@"%@",theEvent.callName];

        [array2 addObject:StringOne];

    }

    self.pickerData = array2;   
    [singlePicker reloadAllComponents];

}

-(IBAction)addCall{
    CDPickerAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *context = [appDelegate managedObjectContext];   
    NSManagedObject *theEvent = [NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedObjectContext:context];

    [theEvent setValue:callField.text forKey:@"callName"];

    [context save:&error];

    callField.text=@"";

[callField resignFirstResponder];   
self.update;
}
...