0

为了清理我的应用程序委托,我已将 Restkit 配置(即,以 开头)移动到静态方法中的[RKObjectManager managerWithBaseURL:[MYAppConfig wsBaseUrl]];另一个类。MYAppConfig+(RKObjectManager *)defaultObjectManager

冒着暴露我的无知的真正风险,我不确定这是否是合法的重组或可能导致麻烦,主要是因为我不确定 Restkit 的单例是如何实现的(看起来,根据我读过的教程,它调用类方法时创建managerWithBaseURL)。

引起我怀疑的是,当我发出获取请求时,RestKit 的日志记录功能似乎没有被触发。

整个事情现在是这样的:

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 回答