如何在NSUserDefaults中存储块变量的自定义对象

时间:2012-10-31 17:04:01

标签: objective-c ios nsuserdefaults objective-c-blocks

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

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

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

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

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

Elendar。

2 个答案:

答案 0 :(得分:1)

似乎不可能直接。你可以间接地做到这一点,这里提出了一个很好的解决方案:Is there any way to serialize / unserialize an Objective-C block?

答案 1 :(得分:0)

我认为更好地分类数据而不是块。创建一些自定义类并对数据进行searlize,在运行时,您始终可以使用该数据创建块。 AFAIK块不会确认NSCoding(如果我错了,请纠正我)。

-MANN