我有一个核心数据实体的老师,和我想表现出一个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