使用[NSKeyedUnarchiver unarchiveObjectWithData:data]程序crash

原文鏈接:

使用NSKeyedArchiver壓縮對象成二進制數據,再使用NSKeyedUnarchiver解壓二進制數據,如果解壓時數據爲nil,或者數據中有異常的數據,那麼解壓將會出錯,甚至會導致程序crash掉。可以用這種方法防止程序crash:

 NSData *data=[[NSUserDefaults standardUserDefaultsvalueForKey:key];

    NSMutableDictionary *dict = [[NSMutableDictionary allocinit];

    if (data) {

        @try {

            dict=[NSKeyedUnarchiver unarchiveObjectWithData:data];

            return dict;

        }

        @catch (NSException *exception) {

            return dict;

        }

        @finally {

            

        }

    }

    return dict;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章