現在、私は、データ転送にJSON、永続ストレージにCore Dataを使用するアプリケーション(Target iOS 6、ARC enabled)を作成しています。 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で動作します。私は、これは私がメッセージを送信するいくつかのオブジェクトがnilであるが、私はそれを修正する方法を見つけることができません...それは、楽器が言っているものだということを意味していることを知っていますこの1以外の出力:
{
"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