我有一个使用核心数据的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