1

현재 CoreData 앱에서 "이벤트"라는 엔티티가 있습니다. "Events"에는 "eventName"이라는 문자열 속성 하나가 있습니다.CoreData 개체의 문자열 속성을 UIPickerView로로드하십시오.

- (void) viewDidLoad 모든 "이벤트"개체를 가져오고 해당 "eventName"을 알파벳순으로 UIPickerView에로드하려고합니다.

궁극적 인 목표는 textField, 버튼 및 pickerView를 사용하여 새로운 객체를 추가하고 원하지 않는 객체를 제거하는 것입니다. 기본적으로 UITickView로 UIPickerView 터닝. 현재 CoreData 저장소에 개체를 저장할 수 있지만 해당 속성을 UIPickerView로 가져올 수 없습니다.

프로젝트 소스 코드를 원하는 사람에게 공유 할 수 있거나 도움을주기 위해 기꺼이 볼 수 있습니다.

감사 크리스

+0

그래서 질문은 무엇인가? –

+0

나는 내 대답을 아래에서 찾을 수 있었고 코드도 게시했다. 하지만 내 현재 질문은 가능/UIPickerView에서 선택되는 CoreData 개체 중 하나를 삭제하는 방법입니까? – OscarTheGrouch

답변

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

    [email protected]""; 

[callField resignFirstResponder]; 
self.update; 
}