1

私のゲームでは、tableView セルにサーバー データベースからの情報をたくさん入力する必要があります。これはうまくいきました。次に、Xcode を 4.6 にアップグレードし、iOS6.1 をターゲットにして、App Review Team の人々を喜ばせました。現在、私の接続の 1 つが完了しません。(他のすべての投稿は、いつものように正しく機能しているようです。) これが私の投稿です。

- (void) fillCells {
    Cell_QtoA *newCell = [[Cell_QtoA alloc] initCellUser:usrID Grp:grpID Qtn:0 Gnm:@"na" Cat:@"na" Sit:@"na" Pfl:@"na" Lks:0 isA:0 ddA:0 ];
    NSMutableURLRequest *reqPost = [SimplePost urlencodedRequestWithURL:[NSURL URLWithString:kFillCells] andDataDictionary:[newCell toDictC]];
    (void) [[NSURLConnection alloc] initWithRequest:reqPost delegate:self];
}

うまくいっていると思います。PHP とデータベースは変更されていません。アップグレード前の昨日は、すべてがうまく機能していました。これが私の接続方法です:

- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
   NSLog(@"data = %@", data);
   NSString  *error;
   NSArray *array = (NSArray *)[NSPropertyListSerialization propertyListFromData:data mutabilityOption:NSPropertyListImmutable format:0 errorDescription:&error];
   if( error ) {
       NSLog(@"Error = %@", error);
       return;
   }
   NSLog(@"1st object in array of %d is %@", [array count], array );
}

ネットワーク速度が問題になるのではないかと思ったので、通話にタイマーを追加しました。これは以前は必要ありませんでした。

timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(fillCells) userInfo:nil repeats:YES];

タイマーは役に立ちませんでした。それでもエラーが発生します:

"Unexpected EOF" and "Unexpected character z (or whatever) at Line 1"

データの NSLog は、次のように途切れたように見える 16 進データを示しています。

<3c3f786d 6c207665 ... 63743e0a 3c2f6172 7261793e 0a3c2f70 6c697374 3e>

受信が中断されているようです。ここで何が起こっているか知っている人はいますか?ありがとう!

4

1 に答える 1

2

すべての応答データを使用しているわけではありません。NSURLConnectionDelegate 参照で言及されているように:

新しく入手可能なデータ。デリゲートは、配信された各データ オブジェクトのコンテンツを連結して、URL ロード用の完全なデータを構築する必要があります。

NSDataしたがって、インスタンス変数を作成する必要があります。リクエストの前にクリアし、新しいデータが到着するたびに追加します。次に、didFinishLoadingデリゲート メソッドを使用propertyListFromDataして、完全な応答で への呼び出しをトリガーします。

于 2013-02-08T14:33:12.407 に答える