我的Iphone应用程序有2种模式,在线模式和离线模式.如果用户在在线模式下使用应用程序,请求会立即提交给服务器.如果用户在离线模式下使用应用程序,我将在本地存储请求,以便我可以在互联网可用时上传它.我正在使用可达性类来检查互联网可用性.应用程序的可访问性正常.我无法实现以下方案.当用户在离线模式下工作时我存储了请求,意味着当用户通过点击iPhone中的主页按钮在后台推送应用程序时.一段时间后,用户将激活他的设备中的WiFi或蜂窝连接.当用户启用互联网连接时,我的后台应用程序会收到通知,并应开始向服务器提交请求.我该如何实现这一功能?许多ios应用程序可能具有相同的此要求.他们是怎么做的?任何的想法?
我尝试了以下步骤来实现这一目标,但没有成功.我在这里做错了什么,帮助我.
1)我在applicationDidEnterBackground委托方法中添加了kReachabilityChangedNotification的观察者.但我的应用程序无法通过此方法收听Kreachabiliychagednotification.
2)如果我在applicationdidbecomeActive中添加kReachabilityChangedNotification的观察者,那么我的应用程序能够听取Kreachabiliychagednotification.
当app在后台时,为什么IOS不允许听Kreachabiliychagednotification?
我完成了应用程序的开发过程,在将它发布到应用程序商店之前,我已经完成了几轮测试(在IOS版本6.0.1上进行了Adhoc测试).在进行Adhoc测试时,我没有发现构建的任何问题.一切都很好.在提交到app store之后,我收到苹果团队的报告,称应用程序在具有IOS版本6.1.3的iphone 5上崩溃.所以我将我的iphone更新为6.1.3.更新到最新版本后,我将构建上传到testflight并从中下载了应用程序.它崩溃了.我从手机上卸载了应用程序并直接连接到系统,并通过xcode直接安装,没有任何代码更改.应用程序开始正常工作 我对崩溃背后的原因感到困惑.我确信它不是代码的问题,因为如果我通过xcode直接安装,相同的代码工作正常.通过testflight直接从xcode安装应用程序的差异是什么?可能是什么问题?我象征着崩溃日志,发现代码没有错.有没有人遇到类似的问题?如果得到修复PLZ帮助我.你的帮助非常受人尊敬.谢谢,下面是我的崩溃日志
Version: ??? (???)
Code Type: `enter code here`ARM (Native)
Parent Process: launchd `enter code here`[1]
Date/Time: 2013-05-07 10:19:43.206 -0700
OS Version: iOS 6.1.4 (10B350)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x43462d40
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x3bc905d0 objc_msgSend + 16
1 Foundation 0x348031dc _NSDescriptionWithLocaleFunc + 48
2 CoreFoundation 0x33f7b42e __CFStringAppendFormatCore + 11158
3 CoreFoundation 0x33ef289e _CFStringCreateWithFormatAndArgumentsAux +
4 Foundation 0x34802cf8 +[NSString stringWithFormat:] …Run Code Online (Sandbox Code Playgroud)