저는 거의 하루 종일 바쁜 상황에 처해 있습니다. 보고 당신이 도울 수 있다면 알려주세요 ...NSData에서 UnArchiving 후 My Objects 데이터 멤버 (NSString *) 값이 '0x7fc0ab73d040'에 오염되었습니다.
여기내가 NSUserDefaults에 저장, 내 CustomObjects (NSCoder 구현 '알람 개체')를 사용하고
AlarmObject은 하나 개의 속성 (있는 NSString *) 'tuneAddress있다
"%의 20phones.mp3 20mobile/알람 % 20clock % 20ringtones % 20 % 20free % 20download. %가 20Mp3 % 20Alarm % 20clock % 20tones % 20sounds % 20 ° %의 20ringtones % 20for % 곡 'LIKE'를 갖는 값
k 지금이 주소 (% 20)에서 해결 된 공백이 좋지 않지만 어쨌든 이것을 바꿀 수는 없습니다. 그것은 아직 내 통제에 있지 않은 서버에서 오는 것입니다. 'tuneAddress'때까지 위에 표시된 것처럼 적절한 같은 값으로 "NSKeyedArchiver archivedDataWithRootObject"을 사용 NSUserDefaults에 일부 개체를 추가 시도가 다시 "NSKeyedUnarchiver unarchiveObjectWithData"을 통해 그것을 가지고 때마다
음, 창간호 여기 문제는 .
여기서 'tuneAddress'값을 '0x7fc0ab73d040'으로 다시 가져옵니다. 제발 이것에 대해 뭔가를 말할 수 있다면 ..? 내가 통해 다시 보관하려고 할 때
두 번째 문제가 첫 번째에 달려있다 "NSKeyedArchiver archivedDataWithRootObject는"여기가
[encoder encodeObject:self.tuneLocalAddress forKey:@"tuneLocalAddress"];
공개 오류 EXC_BAD_ACCESS (코드 = EXC_i386_GPFLT)를 중지합니다. 여기
내가 여기[[NSUserDefaults standardUserDefaults] setObject:[newString stringByReplacingOccurrencesOfString:@" " withString:@"%20"] forKey:TuneChoosenForAlarm_Key];
AlarmObject * newAlarmObj = [[AlarmObject alloc] init];
newAlarmObj.tuneLocalAddress = [[NSUserDefaults standardUserDefaults] objectForKey:TuneChoosenForAlarm_Key];
NSMutableArray * newArray = [[NSMutableArray alloc] initWithObjects:newAlarmObj, nil];
for (AlarmObject * alarmObj in self.alarmsArray) {
[newArray addObject:alarmObj];
}
self.alarmsArray = newArray;
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self.alarmsArray];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:AlarmsDataDictonaryKey];
http://stackoverflow.com/questions/7920071/how-to-url-decode-in-ios-objective-c, 이것을 사용하여 일반 문자열로 변환 한 다음 보관/보관 취소를 수행하십시오. –
코드 붙여 넣기. –
저장하는 데이터 및 데이터. –