현재 데이터 전송을 위해 JSON을 사용하고 영구 저장을 위해 코어 데이터를 사용하는 앱 (대상 iOS 6, ARC 사용)을 작성 중입니다. JSON 데이터는 json_encode를 통해 PHP 스크립트에 의해 MySQL 데이터베이스에서 생성됩니다.NSJSONSerialization 결과는 EXC_BAD_ACCESS입니다.
내 문제는 특정 테이블의 데이터로 다음과 같은 코드가 실패 할 수 있습니다 :
- (NSDictionary *)executeFetch:(NSString *)query
{
NSURL *requesturl = [NSURL URLWithString:[query stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSError *dataError = nil;
self.jsonData = [NSData dataWithContentsOfURL:requesturl options:kNilOptions error:&dataError];
NSError *error = nil;
self.jsonSerializationResult = [NSJSONSerialization JSONObjectWithData:self.jsonData options:NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:&error];
return self.jsonSerializationResult;
}
프로그램은 항상 self.jsonSerializationResult 및 악기가 좀비가 있다고 말한다 말한다 라인에 EXC_BAD_ACCESS 오류로 충돌
감지 됨. 나는 이것이 어떤 객체 나에 무기 호입니다 메시지를 보낼 것을 의미 알지만, 그 악기가 말을하는거야 ... 그것을 해결하는 방법을 찾을 수 없습니다 :
# Address Category Event Type RefCt Timestamp Size Responsible Library Responsible Caller
0 0xa1b8a70 CFString (mutable) Malloc 1 00:01.603.081 32 Foundation -[NSPlaceholderMutableString initWithBytesNoCopy:length:encoding:freeWhenDone:]
1 0xa1b8a70 CFString (mutable) Release 0 00:01.603.137 0 Foundation newJSONValue
2 0xa1b8a70 CFString (mutable) Zombie -1 00:01.603.259 0 Foundation newJSONString
내 프로그램은 모든 JSON와 함께 작동 이 일을 제외하고 출력 :
{
"termin":[
{
"termin_id":"17",
"veranstaltung_id":"20",
"beginn":"2012-09-28 17:00:00",
"ende":"2012-09-28 18:00:00",
"freie_pl\u00e4tze":null
},
{
"termin_id":"18",
"veranstaltung_id":"26",
"beginn":"2012-09-28 19:00:00",
"ende":"2012-09-28 20:00:00",
"freie_pl\u00e4tze":null
},
{
"termin_id":"19",
"veranstaltung_id":"26",
"beginn":"2012-09-28 21:00:00",
"ende":"2012-09-28 22:00:00",
"freie_pl\u00e4tze":null
},
{
"termin_id":"20",
"veranstaltung_id":"46",
"beginn":"2012-09-28 19:00:00",
"ende":"2012-09-28 20:00:00",
"freie_pl\u00e4tze":null
},
{
"termin_id":"24",
"veranstaltung_id":"66",
"beginn":"2012-09-28 22:00:00",
"ende":"2012-09-28 22:30:00",
"freie_pl\u00e4tze":"120"
}
]
}
내가 공급 몇 가지 가능한 오류에 대해 생각하지만 아무도 것으로 보인다 책임 :
- jsonData 또는 jsonSerializationResult는 nil이 될 수있다 : 그들은 없습니다
- PHP 생성 무효 JSON : 발리와 그 검사
- 널 (null) 값 : 다른 테이블
사람이 아이디어를 구하셨하지 문제?
대단히 감사합니다. 그것은 내가 실패한 데이터와 작업 중 하나의 차이점을 조사하면서 변경하지 않은 유일한 것입니다 ...놀랍게도 이스케이프 된 문자는 값이 아닌 사전 키에만 문제가되는 것 같습니다 ... –
BTW, NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves' 옵션. 이것도 당신의 경험입니까? – Rob
안녕하세요, AFNetworking 코드 주석입니다. :) 감사합니다. 정말 도움이됩니다! – skywinder