简体   繁体   English

swift中的核心数据管理对象 - 是否允许?

[英]Core Data managed objects in swift - is nil allowed?

I have created NSManagedObject subclasses for my model objects in swift. 我在swift中为我的模型对象创建了NSManagedObject子类。

Typically my pattern is to create an instance of an object and then set properties on it, then save. 通常我的模式是创建一个对象的实例,然后在其上设置属性,然后保存。

The new objects have properties that are set to nil. 新对象具有设置为nil的属性。 They are not optionals, though. 但它们不是可选项。 I thought in swift this wasn't allowed? 我认为这是不允许的?

A lot of times I need to check for values, but if I try something like: 很多时候我需要检查值,但是如果我尝试这样的话:

if (managedObject.property == nil) I crash. 如果(managedObject.property == nil)我崩溃了。

It seems Xcode doesn't automatically make managed vars optional when creating NSManagedObject subclasses. 在创建NSManagedObject子类时,似乎Xcode不会自动使托管变量成为可选项。 If the values are set as optional in the model, they should be optional in the subclass as well. 如果在模型中将值设置为可选,则它们在子类中也应该是可选的。 (I set them as optional manually) (我手动将它们设置为可选)

模特截图

class ClassWithOptionalName: NSManagedObject {

@NSManaged var name: String?

}

Is managedObject.property optional value? managedObject.property是否可选值?

class CustomManagedObject: NSManagedObject {
    @NSManaged var aProperty: String?
                                    ^
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM