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

ブロックの代わりにデータをシール化する方が良いと思います。いくつかのカスタム クラスを作成し、データをシール化します。実行時に、そのデータを利用していつでもブロックを作成できます。私の知る限り、ブロックは NSCoding を確認しません (ここで間違っている場合は訂正してください)。

-マン
于 2012-10-31T18:14:48.177 に答える