0

アプリケーション デリゲートをクリーンアップするために、Restkit 構成 (つまり、 から始まる) を静的メソッドの[RKObjectManager managerWithBaseURL:[MYAppConfig wsBaseUrl]];別のクラスに移動しました。MYAppConfig+(RKObjectManager *)defaultObjectManager

私の無知を暴露するという非常に現実的な危険を冒して、これが正当な再編成なのか、それとも問題を引き起こす可能性があるのか​​はわかりません.クラス メソッドを呼び出したときに作成されますmanagerWithBaseURL)。

私の疑いを引き起こしているのは、フェッチ要求を行ったときに RestKit のログ機能が起動していないように見えることです。

全体は次のようになります。

methodのMYAppDelegate.m最初didFinishLaunchingWithOptionsの行:

[self _setup]

インMYAppDelegate.mメソッド_setup

[self _setupORM];

RKLogConfigureByName("RestKit", RKLogLevelTrace);
RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace);
RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);
RKLogConfigureByName("RestKit/CoreData", RKLogLevelTrace);

インMYAppDelegate.mメソッド_setupORM

RKObjectManager *manager = [MYAppConfig defaultObjectManager];
NSLog(@"Setup ORM with object manager %@",[manager description]);

クラスMYAppConfig.m内メソッドdefaultObjectManager

RKObjectManager *manager = [RKObjectManager managerWithBaseURL:[MYAppConfig wsBaseUrl]];

NSManagedObjectModel *managedModel = [NSManagedObjectModel mergedModelFromBundles:nil];
RKManagedObjectStore *managedStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedModel];

manager.managedObjectStore = managedStore;
...
[managedStore createManagedObjectContexts];

managedStore.managedObjectCache = [[RKInMemoryManagedObjectCache alloc] initWithManagedObjectContext:managedStore.persistentStoreManagedObjectContext];

return manager;

ロギングが失敗しているように見える理由を確認するために他の場所を探す必要がありますか、それとも構成の構造に関係があるのでしょうか?

4

1 に答える 1

1

あなたの意図は良く、実装も正しいようです。についてのあなたの推測sharedManagerも正しいですが、最初のインスタンス化のみです (したがってmanagerWithBaseURL:、2 つの場所で呼び出して、最初に完全に構​​成しない場合、何も機能しません。元のコードがすべて削除されていることを確認してください)。

于 2013-07-08T06:48:28.557 に答える