Generating Swift models from Core Data entities

前端 未结 7 1548
我在风中等你
我在风中等你 2020-12-08 09:36

Update for Xcode 8:

In Xcode 8, one needs to go to the Core Data Model Editor and Show the File Inspector. Near the bottom is an option for code gen

7条回答
  •  南笙
    南笙 (楼主)
    2020-12-08 10:00

    Lets have a look on the Objective-C way:

    Person.h (Header-File)

    #import 
    #import 
    
    @interface Person : NSManagedObject
    @property (nonatomic, retain) NSString *name;
    @end
    

    Person.m (Implementation-File)

    #import "Person.h"
    
    @implementation Person
    @dynamic name;
    @end
    

    Swift

    The documentation already included in Xcode6-Beta says:

    Core Data provides the underlying storage and implementation of properties in subclasses of the NSManagedObject class. Add the @NSManaged attribute before each property definition in your managed object subclass that corresponds to an attribute or relationship in your Core Data model. Like the @dynamic attribute in Objective-C, the @NSManaged attribute informs the Swift compiler that the storage and implementation of a property will be provided at runtime. However, unlike @dynamic, the @NSManaged attribute is available only for Core Data support.

    So that is how I would rewrite the above example for Swift (not tested):

    Person.swift

    import CoreData
    
    class Person: NSManagedObject {
    
        @NSManaged var name : NSString
    
    }
    

    And according to your question I think the subclass-generation-feature might be not included in Xcode6 yet. Did you made sure that you have chosen "Swift" as programming language when you were creating the Cocoa-Project in Xcode?

提交回复
热议问题