2011-07-21 56 views
0

我正在使用NSKeyedArchiver/NSKeyedUnarchiver通過藍牙將對象從iPad發送到iPhone遙控器。它的工作原理如here所示。錯誤處理-NSKeyedUnarchiver

但是,如果遠程控制器收到未歸檔的數據(例如,隨機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發佈...

回答

0

好吧,經過很多調試後發現它......我之前發佈的數據導致了EXC_BAD_ACCESS。我使用NSZombies來追蹤它來自哪裏,並刪除了該數據發佈。