核心数据一对多关系NSSet具有特定类型?

时间:2015-08-29 14:47:56

标签: swift one-to-many relationships nsset

有人可以解释一下我做错了什么吗?我是Swift的初学者,我正在尝试将Core Data应用到我已完成的应用程序中。 在我的例子中,我有3个班:月,周和日。 月有一个数组[周],类周有一个数组[日]

class Month {
  var weeks: [Week]
}

class Week {
  var days: [Day]
}

class Day {
  var name: String
}

现在,当我尝试处理Core Data并且我与NSManagedObject子类一对多建立关系时,我有NSSet而不是我的数组[Week]或[Day]。

这个NSSet没有类型(对象是AnyObject),它使我的应用程序充满了错误。

在这种情况下,处理核心数据真的必须是NSSet吗?我可以以某种方式为NSSet集合设置类型吗?你可能知道NSSet不起作用;) 帮助我们,你们是专家。我不想改变我的应用程序的几乎所有代码:(

大多数问题都是FOR循环,我必须更改

for week in month.weeks {
  for day in week.day{
    day.name = "something"
  }
}

for weekObject in month.weeks {
   let week = weekObject as! Week
   for dayObject in week.day {
      let day = dayObject as! Day
      day.name = "something"
   }
}

1 个答案:

答案 0 :(得分:0)

您可以改为使用类型化的设置:

server $ make
gcc -Wall -Wshadow -Wno-pointer-sign -O3 -g -fno-strict-aliasing -m32     -DSTAFF -o .obj/server.o -c server.c
In file included from server.c:57:0:
tool.h:24:20: error: conflicting types for ‘atoll’
 unsigned long long atoll(char *string);
                    ^
In file included from /usr/include/features.h:374:0,
                 from /usr/include/stdio.h:27,
                 from server.c:32:
/usr/include/stdlib.h:292:1: note: previous definition of ‘atoll’ was here
 __NTH (atoll (const char *__nptr))
 ^
make: *** [.obj/server.o] Error 1