等待RestKit对象管理器完成初始化

时间:2012-03-19 00:12:48

标签: objective-c ios memory-management initialization restkit

我有一个名为RestKitManager的课程,它执行以下操作:

+ (void)configureRestKit {
    RKObjectManager *sharedManager = [RKObjectManager objectManagerWithBaseURL:baseURLString];

    sharedManager.mappingProvider = [[IKObjectMappingProvider alloc] init];
    sharedManager.serializationMIMEType = RKMIMETypeJSON;

    sharedManager.router = [[IKObjectRouter alloc] init];
}
[RestKitManager configureRestKit]中调用

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

问题是在我的第一个视图控制器中,我调用了我的对象管理器来加载东西。

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/list/brand" objectMapping:[[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[Brand class]] delegate:self];
NSLog(@"%@",[RKObjectManager sharedManager]);

我得到了:

2012-03-18 20:04:37.252 iK9[3668:207] (null)
2012-03-18 20:04:37.258 iK9[3668:207] I restkit:RKLog.m:30 RestKit initialized...
2012-03-18 20:04:37.264 iK9[3668:207] I restkit.network.reachability:RKReachabilityObserver.m:369 Network availability has been determined for reachability observer <RKReachabilityObserver: 0x6ebb270 host=0.0.0.0 isReachabilityDetermined=YES isMonitoringLocalWiFi=620604 reachabilityFlags=-R -----l->

基本上,在我尝试使用它之前,似乎sharedManager还没有完成初始化。

如何让应用等待初始化完成?我不知道这个初始化是在RestKit的后台执行的。这是一个ARC项目。

3 个答案:

答案 0 :(得分:0)

在我的项目中,我会监听RKReachabilityWasDeterminedNotification,然后继续进行需要网络访问的任何进一步初始化。收听此通知并在视图控制器到达时更新它。

答案 1 :(得分:0)

你看过这个教程吗? http://mobile.tutsplus.com/tutorials/iphone/restkit_ios-sdk/

对我来说非常有帮助

答案 2 :(得分:0)

事实证明问题再次发生,我创建了自己的MainWindow并没有将AppDelegateFile's Owner相关联,也没有将File's Owner设置为课堂UIApplication。在这样做之后,我的问题得到了解决。