目前我正在編寫一個應用程序(Target iOS 6,ARC enabled),它使用JSON進行數據傳輸,核心數據用於永久存儲。 JSON數據是由PHP腳本通過json_encode從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可能是零,但實際上卻
- PHP中產生的無效JSON:檢查與驗證程序
- NULL值:不與其他表
有沒有人有一個想法的問題?
非常感謝!這是我在檢查失敗數據和工作數據之間的差異時沒有改變的唯一...令人驚訝的是,轉義字符似乎只是字典鍵的問題,而不是值... –
順便說一句,我只看到這個,如果我使用'NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves'選項。這也是你的經歷嗎? – Rob
來自'AFNetworking'代碼註釋的Hello。 :) 謝謝,它真的有幫助! – skywinder