У меня есть 2 объекта - «Учитель» и «Субъекты» и 2 контроллера, AddSubject и Subject. Сущность «субъект» имеет отношение «учитель». В моем AddSubjectController я добавить тему с выбором учителя из UIPickerViewполучить значение через отношения в Core Data
Subjects *subject = [NSEntityDescription insertNewObjectForEntityForName:@"Subjects" inManagedObjectContext:self.managedObjectContext];
int selectedRow = [teacherPickerView selectedRowInComponent:0];
subject.name = nameOfSubjectTextField.text;
subject.article = notesTextView.text;
subject.teacher = [teacherForSubjectArray objectAtIndex:selectedRow];
teacherForSubjectArray массив с объектами от Core Data
- (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;
}
то в моем SubjectManager я пытаюсь показать эти данные в UITable Просмотр, принимая его от основных данных до
- (NSArray *)takeSubjectFromCoreData {
managedObjectContext = [AppDelegate sharedDelegate].managedObjectContext;
NSFetchRequest *request = [[NSFetchRequest alloc]init];
NSEntityDescription *description = [NSEntityDescription entityForName:@"Subjects" inManagedObjectContext:
managedObjectContext];
[request setEntity:description];
NSError *requestError = nil;
subjectsResultArray = [[self.managedObjectContext executeFetchRequest:request error:&requestError] mutableCopy];
if (requestError) {
NSLog(@"%@" , [requestError localizedDescription]);
}
NSLog(@"%@", subjectsResultArray);
return subjectsResultArray;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
Subjects *objectSubject = [subjectsResultArray objectAtIndex:(long)indexPath.row];
UITableViewCell *cell = [subjectsTableView dequeueReusableCellWithIdentifier:@"subjectCell" forIndexPath:indexPath];
NSString *subjectName = [NSString stringWithFormat:@"%@", [objectSubject valueForKey:@"name"]];
NSString *teacherOfSubject = [NSString stringWithFormat:@"%@", objectSubject.teacher];
cell.textLabel.text = subjectName;
cell.detailTextLabel.text = teacherOfSubject;
return cell;
}
Но есть проблема с teache rOfSubject, я получаю не текущее значение, но путь, или NSmanagedObject вместо значения, что мне нужно, что-то вроде
0x7a6806d0 х-CoreData: // 6DB0CDAF-5C8C-4128-BB43-D0EC10EA41D6/Преподаватель/p2.
Я знаю, что ответ должен быть очень простым, но я устал пытаться решить его сам.
если мой вопрос недостаточно ясный, скажите, пожалуйста. – SpencerReid