新NSManagedObject子类的属性重新声明

时间:2015-12-03 00:05:29

标签: ios xcode core-data swift2

这是我第一个使用Core Data的应用程序,我已经介绍了两个新的ManagedObjects子类。起初我将这两个类写成两个普通的Swift类,然后我决定通过在dataModel中将它们创建为实体来使它们成为ManagedObject的子类。

然后我去编辑>>创建NSManagedObject子类... ,然后将第一个类中的代码复制并粘贴到新类中,并删除旧类。这很好。

第二次我尝试了同样的事情,但这次我的属性出错了。

@objc(TimeValues)
class TimeSlot: NSManagedObject {

    var beginDate: NSDate //This line here
    var endDate: NSDate   //This line here
    var currentSeconds: NSNumber //This line here

属性都有错误'beginDate'的无效重新声明和存储属性beginDate需要初始值或者应该是NSManaged

在另一个TimeSlot扩展文件中,我也遇到了重新声明错误:

import Foundation
import CoreData

extension TimeSlot {

    @NSManaged var beginDate: NSDate?
    @NSManaged var endDate: NSDate?
    @NSManaged var currentSeconds: NSNumber?

}

我认为重新声明错误是因为我在其他地方声明它,但我删除了旧文件夹,而其他NSManagedObject子类工作正常。两者之间的唯一区别是另一个只有静态变量。

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

您是否检查过语法问题?我有一个类似的问题是由 Editor>>生成的文件中的额外空import语句引起的。在Xcode 8.0中创建NSManagedObject子类...

import Foundation
import CoreData
import // <- delete this line