2

我想知道是否有任何方法可以防止核心数据从核心数据模型实体生成公共类。

目前它生成这样的类:

import Foundation
import CoreData


public class MyEntityMO: NSManagedObject {

}

extension MyEntityMO {

    @nonobjc public class func fetchRequest() -> NSFetchRequest<RecordSettingMO> {
        return NSFetchRequest<RecordSettingMO>(entityName: "RecordSettingMO")
    }

    @NSManaged public var someBoolean: Bool
}

但我希望它是这样的(使用内部访问修饰符):

import Foundation
import CoreData


internal class MyEntityMO: NSManagedObject {

}

extension MyEntityMO {

    @nonobjc internal class func fetchRequest() -> NSFetchRequest<RecordSettingMO> {
        return NSFetchRequest<RecordSettingMO>(entityName: "RecordSettingMO")
    }

    @NSManaged internal var someBoolean: Bool
}
4

1 回答 1

2

Xcode 不提供任何方法来进行此更改。要使用internal,您需要关闭自动子类生成并创建自己的子类。

您可以使用问题中的代码。获取当前代码,保存一份,关闭自动生成。然后编辑您的副本。但是您也必须自己进行所有未来的编辑,因此如果您将来更改模型,请确保也编辑您的子类。

于 2018-03-27T17:16:29.240 回答