Iphone 更新核心数据NSManagedObject的共享方法?
我正在寻找一个基本模式,在那里我可以移动一些共享代码。我有一个NSManagedObject PurchaseOrder,它存储在核心数据中。这可以在多个不同的视图中编辑和更改。大多数情况下,都是相同类型的更改,PurchaseOrder使用另一个NSManagedObject客户端的数据进行更新 我想将这种类型的代码移动到一个地方,这样我就可以调用如下内容:Iphone 更新核心数据NSManagedObject的共享方法?,iphone,objective-c,Iphone,Objective C,我正在寻找一个基本模式,在那里我可以移动一些共享代码。我有一个NSManagedObject PurchaseOrder,它存储在核心数据中。这可以在多个不同的视图中编辑和更改。大多数情况下,都是相同类型的更改,PurchaseOrder使用另一个NSManagedObject客户端的数据进行更新 我想将这种类型的代码移动到一个地方,这样我就可以调用如下内容: -(void) updatePurchaseOrder: (PurchasOrder *) aPurchaseOrder withCli
-(void) updatePurchaseOrder: (PurchasOrder *) aPurchaseOrder withClient:(Client *) aClient withManagedObjectContext: (NSManagedObjectContext *) aManagedObjectContext {
// update code goes here
}
这是一个坏主意还是一个灾难?我已经使用了一个共享实例类(下面的一小部分):
我将其称为如下函数:
[[[SharedFunctions] sharedInstance] myMethod];
这对我来说很有效。想法?在哪里定义了updatePurchaseOrder方法?在这种情况下,我将创建NSManagedObject的自定义PurchaseOrder子类,并实现updateWithClient方法
@interface PurchaseOrder : NSManagedObject {
}
-(void)updateWithClient:(Client *)client;
@end
因此,您只需调用[apurchaseorderupdatewithclient:aClient]代码>你需要的地方。看起来更糟糕,除非我错过了什么
如果尚未为PurchaseOrder创建自定义子类,则可以在NSManagedObject的类别中执行相同的操作。如果要传递所有必需的参数,为什么要使用单例的开销?只是创建一个类方法。很好很简单的想法,不知道为什么我没有想到-这是我在c#中应该做的-谢谢!
@interface PurchaseOrder : NSManagedObject {
}
-(void)updateWithClient:(Client *)client;
@end