하나의 뷰 컨트롤러에서 다른 뷰 컨트롤러로 전달할 수있는 다른 관련 정보와 함께 구문 분석 된 XML 데이터가 포함 된 '깊은'NSMutableDictionary를 만들었습니다. NSMutableDictionary는 대부분 NSStrings를 포함하지만 또 다른 NSMutableDictionary NSStrings를 포함하고 마침내 사용자 객체의 NSMutableArray (심지어 달력을위한 것임)와 더 깊숙이 있습니다.NSString을 NSString으로 변환하면 EXC_BAD_ACCESS가 반환됩니다.
이제 캘린더이기 때문에 분명히 관련된 날짜가 있습니다. NSXMLParser를 사용하여 받고 구문 분석 한 XML 데이터는 문자열을 반환하므로 날 날짜를 사용 가능한 숫자로 변환하는 것이 내게있었습니다. XML의 날짜는 다음과 같은 형식으로 제공됩니다 : "MM.DD"나는 그렇게 할 수있는 다음과 같은 방법을 만들어 :
- (void)createDateCodesWithString:(NSString *)string
{
NSInteger monthCode;
NSInteger dayCode;
....
NSArray *dates = [string componentsSeparatedByString:@"."];
monthCode = [[dates objectAtIndex:0] integerValue];
dayCode = [[dates objectAtIndex:1] integerValue];
....
shortDay = [NSNumber numberWithInt:dayCode];
}
'shortDay은'비 원자의 NSNumber * 및 속성과 같은 바르 및 설정 (이다, retain)을 만들었습니다. 콘솔에서 NSLog 명령을 실행하면 'shortDay'와 다른 데이터가 깊은 NSMutableDictionary에 성공적으로 저장되었다는 메시지가 나타납니다. 그러나 데이터에 다시 액세스하려고하면 문제가 발생합니다. NSString *에 저장된 ivar에 액세스하면 모든 것이 정상적으로 작동하지만 NSNumber에 액세스하려고하면 * 코드 1 또는 코드 2로 EXC_BAD_ACCESS 오류가 발생합니다. 이것은 NSNumber *를 호출하려고 시도하는 방법입니다.
NSNumber *number = day.shortDay;
return [number stringValue];
NSArray * 날짜가 문자열을 월 및 일 문자열로 분리하고 날짜 문자열이 2 자 길이로, 예를 들어 '6'앞에 '0'이 포함될 수 있습니다. 6 월 6 일? 어떤 충고?
필요한 경우 더 많은 코드를 게시하게되어 기쁩니다.
NSNumber 클래스 참조에서 이러한 객체를 만드는 방법을 확인하십시오. 정수 할당은 작동하지 않습니다. 경고하지 않았 니? –