我有一个使用核心数据的iOS应用程序。
我已经建立了NSManagedObjectModel。我在那里有一个NEOrder实体。
我生成了NSManagedObject子类。

@interface NEOrder : NSManagedObject

@property //....

@end

我有一个UIViewController的子类。这需要具有NEOrder类型的实例变量。
但我希望它的行为像一个普通的自定义对象:
@interface NEOrder : NSObject

@property //....

@end

当然,可以通过创建另一个.h和.m文件来完成,并在其中声明NEOrder_子类化NSObject。但是,除了@ synthesize / @ dynamic和init方法之外,该文件与生成NSObjectModels的核心数据非常相似。
我不想做两次工作。
请帮我,怎么办?

如果我将init添加到生成的NEOrder应用中,则会崩溃:
-(id)init
{
    if (self=[super init])
    {
        self.name=[[NSString alloc] init];
        self.phone=[[NSString alloc] init];
        self.weight=[[NSNumber alloc] init];
        self.fromDirection=[[NEDirection alloc] init];
        self.toDirection=[[NEDirection alloc] init];
    }
    return self;
}

还有关于我要如何使用它的几句话。
//NEOrder *order is an instance of view controller
self.order=[NEOrder alloc] init]
//...
self.order.name=@"order name";
self.order.phone=@"12344321";

可能吗?还是我必须为此创建一个单独的NSObject的子类?

最佳答案

您的问题的一部分没有任何意义:

我希望它的行为像一个普通的自定义对象。

你什么意思?

问题的其余部分建议您只需要一个NEOrder类,并且应该像这样设置视图控制器:

MyViewController.h:

@class NEOrder;

@interface MyViewController : UIViewController

@property (strong) NEOrder *order;

@end

MyViewController.m:
#include "NEOrder.h"

@implementation MyViewController

...

@end

09-11 19:32
查看更多