1

我正在解析一个 JSON 文件来构建一个对象图。在反序列化 JSON 时,我使用块验证对象。如果任何对象发生任何验证错误,我需要中断进一步的块处理。有没有办法打破嵌套块 - 就像breakswitch语句中一样?

我正在运行 iOS 5.0 并使用 ARC。如果您想要一些代码来帮助理解我的问题,请告诉我。

4

1 回答 1

4

解决方案是在你的类中添加一个 __block BOOL ivar,我们称之为“取消”。当您发现错误时,将“取消”设置为“是”。在每个块中,在每个循环中,仅当“取消”为假时才起作用。

这样,当遇到错误并设置了取消时,一旦检测到“取消”设置,块就会基本上退出。

编辑:因为我写了这个 ivars 不需要 __block 限定符(并且可能永远不需要它,不确定)。当块引用 ivar 时,它们通过一个“self”指针来完成,即 self->ivar。

于 2012-09-07T11:46:19.767 回答