【发布时间】:2019-09-26 23:45:00
【问题描述】:
我正在做一个项目,您可以(从学校的角度)计算每个学生的平均成绩。 您可以在一个屏幕上注册学生(第一个实体),在另一个屏幕上注册科目(第二个实体)。 学生有姓名、电子邮件、成绩和平均成绩作为属性,学科有姓名。它们相互之间是多对多的关系。
我正在尝试为每个学生创建一个科目列表的副本,然后我可以在每个学生上为每个科目注册一个成绩。像这样:
型号: !https://imgur.com/gmXyR5j
我创建了一个单独的主题,因为它被用于多个位置:
import Foundation
import CoreData
class SubjectsManager {
static let shared = SubjectsManager()
var subjects: [Subject] = []
func loadSubject(with context: NSManagedObjectContext) {
let fetchRequest: NSFetchRequest<Subject> = Subject.fetchRequest()
let sortDescritor = NSSortDescriptor(key: "name", ascending: true)
fetchRequest.sortDescriptors = [sortDescritor]
do {
subjects = try context.fetch(fetchRequest)
} catch {
print(error.localizedDescription)
}
}
func deleteSubject(index: Int, context: NSManagedObjectContext) {
let subject = subjects[index]
context.delete(subject)
do {
try context.save()
subjects.remove(at: index)
} catch {
print(error.localizedDescription)
}
}
private init() {
}
}
而且,在我的学生屏幕上,我尝试了很多东西,但没有任何效果。
学生与学科的一对多关系称为registeredSubjects
我创建了一个名为 subjectsManagerSet 的 NSSET 来从单例中获取值,但它不起作用。这是我到目前为止所尝试的:
subjectManagerSet.addingObjects(from: subjectsManager.subjects)
还尝试创建 subjectManager.subjects 的 for 循环以添加 subjectManagerSet,但它也不起作用。
关于错误,当我从 xcode 输出中获取样本时,它一直显示 subjectManagerSet 没有从 subjectManager.subject 获取值
错误信息:
2019-09-26 20:38:16.983725-0300 MyAverage[1734:62290] Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value: file /Users/vitorgomes/Desktop/Mentorizacao/MyAverage/MyAverage/Controllers/StudentsViewController.swift, line 119
(lldb) po subjectManagerSet
0 elements
预期的结果是我想要每个学生实例的科目副本,然后我可以为每个学生的每个科目添加成绩。
【问题讨论】:
-
virtu 你能截图或复制粘贴到你的问题中吗?StudentViewController.swift 文件第 119 行的代码(每个错误消息)?