【发布时间】:2014-10-29 19:25:54
【问题描述】:
我有一个核心数据实体教师,我试图在 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];
}
根据 NSManagedObjects 数组制作字符串的 NSMutableArray:
- (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];
}
但没有任何内容进入屏幕。有什么问题?也许有人知道更好的方法?
【问题讨论】:
标签: ios objective-c core-data