State restoration 狀態重建時遇到的問題Warning: Unable to create restoration in progress marker file

之前用MMDrawerController這個第三方庫,運行的時候會有個警告Warning: Unable to create restoration in progress marker file。

解決方法:

首先看看用于狀態重建(State restoration)的設置是不是正確的:

1、在AppDelegate中,重寫application:willFinishLaunching 方法,并return YES。重寫shouldSaveApplicationState 和 shouldRestoreApplicationState方法,都return YES;

2、每一個ViewController(也包括NavigationController和TabBarController)和他們的父視圖控制器都必須設置 restorationIdentifier屬性;

完成后,運行程序,如果警告還是會出現,就按照下面的順序操作來觸發狀態保持:

1、在Xcode模擬器上運行程序;

2、在Xcode模擬器上,點擊Home鍵,讓應用進入后臺。這時應用會調用encodeRestorableStateWithCoder方法;

3、在Xcode上,點擊stop鍵終止程序;

4、在Xcode上,雙擊Home鍵,在后臺移除應用程序;

5、返回Xcode,再次運行程序;

按照這個順序,就沒有警告了。

對于這個警告,我的理解:

不能在進程標記文件中創建這個重構模型(restoration)。我覺得,如果要這個重構模型構建成功,程序就要正常的運行一次(包括終止),這樣在以后的運行中,才能夠重用這個重構模型。Xcode的stop并不是正常的終止了程序。參考:

http://stackoverflow.com/questions/19424670/state-restoration-in-ios?rq=1

http://stackoverflow.com/questions/18932156/cryptic-warning-without-any-google-results-in-simulator

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 靜態庫與動態庫的區別 首先來看什么是庫,庫(Library)說白了就是一段編譯好的二進制代碼,加上頭文件就可以供別...
    吃瓜群眾呀閱讀 12,088評論 3 42
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,973評論 19 139
  • 因為要結局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細...
    uniapp閱讀 4,526評論 0 12
  • 本文是對 MagicalRecord github上的翻譯 正文:注意: MagicalRecord 在 ARC...
    騂躍神話閱讀 2,055評論 1 5
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,212評論 30 472