Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 更新核心数据NSManagedObject的共享方法?_Iphone_Objective C - Fatal编程技术网

Iphone 更新核心数据NSManagedObject的共享方法?

Iphone 更新核心数据NSManagedObject的共享方法?,iphone,objective-c,Iphone,Objective C,我正在寻找一个基本模式,在那里我可以移动一些共享代码。我有一个NSManagedObject PurchaseOrder,它存储在核心数据中。这可以在多个不同的视图中编辑和更改。大多数情况下,都是相同类型的更改,PurchaseOrder使用另一个NSManagedObject客户端的数据进行更新 我想将这种类型的代码移动到一个地方,这样我就可以调用如下内容: -(void) updatePurchaseOrder: (PurchasOrder *) aPurchaseOrder withCli

我正在寻找一个基本模式,在那里我可以移动一些共享代码。我有一个NSManagedObject PurchaseOrder,它存储在核心数据中。这可以在多个不同的视图中编辑和更改。大多数情况下,都是相同类型的更改,PurchaseOrder使用另一个NSManagedObject客户端的数据进行更新

我想将这种类型的代码移动到一个地方,这样我就可以调用如下内容:

-(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