我有一個核心數據實體的老師,和我想表現出一個UIPickerView所有屬性(名字,中間名,姓氏),所以我是把對象的詳細數據:從核心數據使UIPickerView對象
- (NSArray *)takeTeacherForSubject {
managedObjectContext = [AppDelegate sharedDelegate].managedObjectContext;
NSFetchRequest *request = [[NSFetchRequest alloc]init];
NSEntityDescription *description = [NSEntityDescription entityForName:@"Teacher" inManagedObjectContext: managedObjectContext]; [request setEntity:description];
NSError *requestError = nil;
teacherForSubjectArray = [[self.managedObjectContext executeFetchRequest:request error:&requestError] mutableCopy];
if (requestError) { NSLog(@"%@" , [requestError localizedDescription]); } return teacherForSubjectArray;
}
從UIPickerDataSource
方法:
- (NSInteger)numberOfComponentsInPickerView:
(UIPickerView *)pickerView {
return 1;
}
- (int)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [teacherForSubjectArray count];
}
製作的NSMutableArray串,從NSManagedObjects的數組:
- (NSMutableArray *)makingDict {
int count = [teacherForSubjectArray count];
teacherStringsArray = [NSMutableArray arrayWithCapacity:count];
for (Teacher* object in teacherForSubjectArray)
{
teacher = [NSString stringWithFormat:@"%@ %@ %@", object.firstName, object.middleName, object.lastName];
[teacherStringsArray addObject:teacher];
}
NSLog(@"%@", teacherStringsArray);
return teacherStringsArray;
}
製作NSArray並顯示它:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ NSArray
*array = [NSArray arrayWithArray:teacherStringsArray]; return [array objectAtIndex:row];
}
但沒有任何東西會進入屏幕。有什麼問題?也許有人知道更好的方法來做到這一點?
我不知道爲什麼,但我試圖做同樣的,但它沒有工作,所以我也這樣,某種瘋狂。謝謝你的解釋,它有很大的幫助! – SpencerReid 2014-10-29 23:06:43