xcode 类型'NSset'的值没有成员'_' -无法透过NSset存取属性

camsedfj  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(138)

我建立了一个核心数据模型,其中包含3个实体:Exercise、ExerciseSet和Workout。它的设置使得Exercise和ExerciseSet具有一对一关系,而Workout和ExerciseSet具有一对多关系。我试图通过Workout访问ExerciseSet中的属性,但当我运行以下代码时:

struct WorkoutView: View {
@State var workout = Workout()
    
    var body: some View {
        
        Text("Sets in Workout: \(workout.exerciseSets.count)")
        
        ForEach(Array(arrayLiteral: workout.exerciseSets), id: \.self) { e in
            Text("Exercise Name: \(e.exercise.exercisename), Reps: \(e.reps), Weight: \(e.weight)")         
        }

我收到以下错误

Value of type 'NSSet' has no member 'exercise'
Value of type 'NSSet' has no member 'reps'
Value of type 'NSSet' has no member 'weight'

当我在健身程序和健身程序之外调用这些属性时,它们都存在。exerciseSets.count按预期返回。
以下是每个实体的定义:
第一个
为了能够通过“健身程序”访问ExerciseSet中的属性,我是否遗漏了什么?谢谢。

waxmsbnn

waxmsbnn1#

Swift中的NSSet不知道底层类型。
Array(arrayLiteral: workout.exerciseSets)替换为workout.exerciseSetArray
必须将NSSet转换为原生的Set<ExerciseSet>才能访问属性。或者--更简单--将exerciseSets声明为Set<ExerciseSet>。Core Data可以很好地处理原生的Swift类型。

相关问题