我向醫療應用程序添加了一項新功能,允許用戶將電子郵件附件導入到應用程序的「文檔」文件夾中以供離線查看。在運行iOS 5.1的iPad 2或運行iOS 5.1的iPhone 4S上將電子郵件附件導入應用程序時效果很好。但是,在運行iOS 4.3的原始iPad上,導入附件無法打開應用程序(在顯示啓動畫面之前它會掛起)。崩潰日誌包含異常代碼0x8badf00d,並顯示應用程序在嘗試啓動20秒後退出。雖然保持iOS 4.x兼容性並不重要,但如果此問題可以解決,我希望繼續支持4.x。我想知道這個問題是否與iOS 4相關,或者與原始iPad的架構有關。任何想法都會非常感激,特別是因爲在模擬器上測試這個bug似乎是不可能的。值得注意的是,除了Apple的Reachability代碼,應用程序的啓動不需要任何網絡活動;典型的發射時間幾乎是瞬間的。謝謝。運行iOS 4.3的iPad上的0x8badf00d異常代碼,但不運行iOS 5.1的iPad或iPhone上的異常代碼
0
A
回答
1
如果導入新數據需要很長時間,則不應該在應用程序中導入附件:didFinishLaunching :.您應該立即向用戶顯示微調器或類似內容,然後在後臺線程上完成導入過程。
要檢查的另一件事是確保你不會有一個錯誤的無限循環,或其他東西一遍又一遍地調用directoryContentsAtPath:matchingExtension:options:keepExtension:error
。
1
操作系統說它啓動時間太長。減少你的發射時間。
這是看着你的應用程序,假設你的應用程序被掛起的看門狗定時器。現在,爲什麼最慢的設備是第一個出現這個問題並不奇怪。
相關問題
- 1. scalesPageToFit不正常運行在iPad上的iPhone應用(iOS 7)
- 2. 運行時異常代碼
- 3. 代碼中的運行時異常
- 4. 運行從代碼異常perl腳本
- 5. iOS運行時異常
- 6. 的iOS應用程序在iPhone上而不是iPad的運行
- 7. 檢測iPhone,iPhone Retina顯示器或iPad上運行的ios應用程序的代碼是什麼?
- 8. MPMoviePlayerViewController無法在iPhone或iPad上的iOS 4.3上工作
- 9. 運行代碼時遇到運行時異常
- 10. MPMoviePlayerController代碼在iPhone(運行4.3)上播放視頻,但不在iPodTouch上運行(運行4.2)
- 11. 在iPad上運行iPhone SDK
- 12. 在Ipad上運行Iphone App
- 13. iPad上的iOS iOS用戶代理
- 14. 遊戲在iOS 4.3上運行正常,但在iOS 5上glDrawArrays崩潰
- 15. 我的代碼運行不正常
- 16. 無法運行iOS代碼
- 17. 爲什麼我的圖表在iPhone/iPad上運行,但不在Android上運行?
- 18. C#上運行的代碼
- 19. 捕捉從Android上運行的本機代碼拋出的異常
- 20. Xcode 5上的iOS 5.1代碼?
- 21. 目標C代碼的工作在iPad上,但不能在iPhone
- 22. 爲什麼我的異常會阻止代碼運行
- 23. 異常代碼:c000001d當蟒蛇運行(OpenCV的)
- 24. 如何異步運行非常少量的代碼?
- 25. DeepCopy :: recursiveCopy異常,當我運行與yii2框架的代碼
- 26. 獲得「未處理的異常:org.json.JSONException」運行時代碼示例
- 27. 異常:OutOfMemoryError:運行代碼時的Java堆空間
- 28. 處理事務性jdbc代碼中的運行時異常
- 29. iOS在不同版本的代碼中運行代碼
- 30. NSURLConnection在iPad上正常運行,在iPhone上運行良好(Yelp AP/OAuth 2.0I)
嘗試暫停您的應用程序,例如嘗試啓動10秒並查看代碼被阻止的位置。或者,您可以使用Time Profiler工具或類似工具查看時間正在進行的時間。 –
時間事件探查器顯示(NSFileManager directoryContentsAtPath:matchingExtension:options:keepExtension:error:]如果我暫時註銷重命名導入的附件文件並刪除附件導入過程創建的收件箱文件夾的代碼,則剩餘的收件箱文件夾的大小0字節,似乎在郵件應用程序退出和我的應用程序啓動之間出現錯誤,同樣,錯誤令人費解,因爲在運行iOS 5.x的設備上該過程非常快。此時,我懷疑iPad 1的處理器速度相對較慢是一個問題 – user183804
經過代碼替換的試用和錯誤後,我發現該代碼發生掛起,將附件文件名從其url中轉換爲字符串(適用於iOS5,但不能iOS4):NSString * localizedName = nil; [url getResourceValue:&localizedName forKey:NSURLLocalizedNameKey error:NULL];非常感謝你的幫助和提醒我儀器的有用性。 – user183804