我有兩個實體 - 「教師」和「主題」,以及2個控制器,AddSubject和Subject manager。實體「主體」與「教師」有關係。在我AddSubjectController我增加了主題從UIPickerView選擇老師通過核心數據中的關係獲得價值
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是從核心數據
- (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;
}
但與一個老師允許問題rOfSubject,我得到不是當前值,而是一個路徑,或NSmanagedObject而不是價值,我需要,像
0x7a6806d0 X-coredata:// 6DB0CDAF-5C8C-4128-BB43-D0EC10EA41D6 /教師/ P2。
我知道答案應該很簡單,但我厭倦了試圖自己解決它。
如果我的問題不夠清楚,請說出來。 – SpencerReid 2014-10-31 16:48:25