小编tal*_*ith的帖子

RestKit loadObjectsAtResourcePath:delegate工作一次,但后来再也没有

我对Objective-C和XCode相当新,但是甚至比RestKit更新,尽管已经用Java编程了12年.

我有一个连接到RestKit的IOS应用程序和从休息服务器加载的操作仅在第一次工作,如果我回到导航控制器并再次尝试相同的操作,该loadObjectsAtResourcePath:delegate方法被调用,但没有任何委托方法得到调用(我实现所有这些只是为了记录它们发生时).

我觉得我已经错过了与Restkit一些基本的东西,也许它的异步性质,因为映射显然是做工精细的第一次,所以后续调用必须在异步队列中迷路.

我用谷歌搜索了这个,看到类似的人被类似的东西卡住了,但是尝试了所有这些并且似乎并没有什么不同.缓存被禁用,objectLoaderDidLoadUnexpectedResponse并且didFailWithError永远不会被调用,它会被丢弃到地板上.

代码来源:

我的XCode项目在这里上了github

执行加载调用的特定View Controller在这里(参见setUpRestKit方法)

调用顺序如下:

  • 用户填写主机名,端口和点击连接
  • ESRKConnectionViewController.m通过prepareForSegue获取调用并使用此地址设置共享RKClient(虽然我后来发现RKClient使用不多,但RKOBjectManager似乎只需要一个baseURL,所以有点多余)
  • 然后,ESRKServerViewController.m设置RKObjectManager上的映射并调用loadObjectsAtResourcePath将其自身作为委托传递(是的,我意识到这些映射可能应该在App Delegate的开头配置,但我看不出如何重新设置它是什么不仅仅是冗余代码)
  • objectLoader:didLoadObjects回调则负责拍摄对象映射和配置模式,为表视图-这是只发射一次.

启用日志,这是我看到的模式,第一个调用完成时注释,第二个调用开始时等(为了清晰起见,时间戳被修剪):

ElasticSearchHeadIOS[25064:fb03] I restkit:RKLog.m:32 RestKit initialized...
ElasticSearchHeadIOS[25064:fb03] I restkit.support:RKCache.m:178 Invalidating cache at path: /Users/paulsmith/Library/Application Support/iPhone Simulator/5.1/Applications/BDB8B59F-8307-4F18-A4E7-C55849618D77/Library/Caches/RKClientRequestCache-localhost/SessionStore
ElasticSearchHeadIOS[25064:fb03] I restkit.network.reachability:RKReachabilityObserver.m:155 Reachability observer initialized with hostname localhost
ElasticSearchHeadIOS[25064:fb03] D restkit.network:RKClient.m:271 Reachability observer changed for client <RKClient: 0x80756e0>, suspending queue <RKRequestQueue: 0x8082600 name=(null) suspended=YES requestCount=0 loadingCount=0/5> until reachability …
Run Code Online (Sandbox Code Playgroud)

xcode4 restkit ios5

23
推荐指数
1
解决办法
1174
查看次数

标签 统计

ios5 ×1

restkit ×1

xcode4 ×1