0

NSKeyedArchiver / NSKeyedUnarchiver を使用して、Bluetooth 経由で iPad から iPhone リモコンにオブジェクトを送信しています。ここに示すように機能します。

ただし、リモート コントロールがアーカイブされていないデータ (ランダムな NSString など) を受信すると、アプリケーション全体がクラッシュします。「アーカイブ内のデータがオブジェクトXの場合は、アーカイブを解除して次のことを行いますが、それ以外の場合は無視してください」と言いたいです。

これらのエラーを NSKeyedUnarchiver で処理する方法はありますか?

これが私のコードです:

- (NSMutableDictionary *)unpackReceivedNSMutableDictionaryFromData:(NSData *)receivedData {
    NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:receivedData];
    NSMutableDictionary *receivedDictionary = [[unarchiver decodeObjectForKey:@"MyKey"] retain];
    [unarchiver finishDecoding];
    [unarchiver release];
    return receivedDictionary;
}

どんな提案でも大歓迎です!StackOverflow に投稿するのはこれが初めてです...

4

1 に答える 1

0

さて、多くのデバッグの後にそれを理解しました...私はEXC_BAD_ACCESSを引き起こしたデータを以前にリリースしていました。私は NSZombies を使用して、それがどこから来たのかを追跡し、そのデータ リリースを削除しました。

于 2011-07-21T23:15:58.860 に答える