0

我想在 NSUserDefaults 中存储一个带有块的自定义对象。我已经实现了

- (void)encodeWithCoder:(NSCoder *)encoder and - (id)initWithCoder:(NSCoder *)decoder

有没有办法在这个调用期间存储 myblock 变量?像这样的东西:

- (void)encodeWithCoder:(NSCoder *)encoder
{
    [encoder encodeSomething:self->_myblock forKey:@"myblock"];
}

我已经尝试过 encodeObjectf 并且它似乎不起作用......如果有人已经尝试过这个,我可能会感谢你的帮助:-)

埃兰达。

4

2 回答 2

1

看来不能直接。您可以间接执行此操作,这里建议的很好的解决方案:Is there any way to serialize / unserialize an Objective-C block?

于 2012-10-31T17:13:12.583 回答
0

我认为最好对数据而不是块进行存储。创建一些自定义类并存储您的数据,并且在运行时您始终可以使用该数据创建块。AFAIK 块不向 NSCoding 确认(如果我在这里错了,请纠正我)。

-曼
于 2012-10-31T18:14:48.177 回答