我想在NSUserDefaults中存储一个带有块的自定义对象。我已经实现了
- (void)encodeWithCoder:(NSCoder *)encoder and - (id)initWithCoder:(NSCoder *)decoder
有没有办法在此调用期间存储myblock变量? 像这样的东西:
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeSomething:self->_myblock forKey:@"myblock"];
}
我已经尝试过encodeObjectf,它似乎不起作用...... 如果有人已经尝试过这个,我可能会感激你的帮助: - )
Elendar。
答案 0 :(得分:1)
似乎不可能直接。你可以间接地做到这一点,这里提出了一个很好的解决方案:Is there any way to serialize / unserialize an Objective-C block?
答案 1 :(得分:0)
我认为更好地分类数据而不是块。创建一些自定义类并对数据进行searlize,在运行时,您始终可以使用该数据创建块。 AFAIK块不会确认NSCoding(如果我错了,请纠正我)。
-MANN