2

我正在我的应用程序中实施状态恢复,以允许应用程序在应用程序被操作系统清除后返回到它所在的位置。

编码和解码必要的变量(例如用户在文本字段中键入的文本)相当简单,但是,如何保存在变量上设置的完成处理程序块?

例如,以 Apple 的UIAlertController. 您使用UIAlertActions 创建它,它在创建时具有一个处理程序的参数,该处理程序在点击时触发。handler: ((UIAlertAction) -> Void)?

如果我是 Apple,并且我想恢复UIAlertController提供的内容,我将如何恢复该处理程序?它显然包含在其范围内使用的不可预测的大量变量,所以我无法想象你可以只使用NSCoder'sencodeObject方法。

对此有公认的策略吗?或者甚至是一种方法来做到这一点?

是的,我知道委派是一种选择,但是最近越来越多地使用块,并且如上所述,Apple 正在使用它们。捕获周围变量上下文的能力很重要,而委托不提供。

4

0 回答 0