0

どのNSURLRequestをターゲットにするかをテーブルビューに伝えるのに問題があります。単一のクエリでロードする基本的なテーブルビューを取得できますが、特定のセグメント化されたコントロールがアクティブな場合は、別のURLからjson文字列をプルするようにしようとしています。

これらの最初の3行のコードはそれ自体で機能します

NSString *urlA1 = [NSString stringWithFormat:@"http://www.website.com/json_books.php?
item_id=%@",itemId];

NSURL *urlA2 = [NSURL URLWithString:urlA1];

NSURLRequest *requestA = [NSURLRequest requestWithURL:urlA2];
[[NSURLConnection alloc] initWithRequest:requestA delegate:self];

ただし、最初の3行の後に次の3行を含めると、テーブルビューは最初のNSURLRequestからjsonをロードし、すぐにちらつき、以下の文字列のコンテンツを表示します。

NSString *urlB1 = [NSString stringWithFormat:@"http://www.website.com/json_movies.php?
item_id=%@",itemId];

NSURL *urlB2 = [NSURL URLWithString:urlB1];

NSURLRequest *requestB = [NSURLRequest requestWithURL:urlB2];
[[NSURLConnection alloc] initWithRequest:requestB delegate:self];

次のコード行を使用して、結果をテーブルビューにプルしています。

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse 
*)response
{
    data = [[NSMutableData alloc] init];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)theData
{
    [data appendData:theData];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    items = [NSJSONSerialization JSONObjectWithData:data options:nil error:nil];
    [mainTableView reloadData];
}

テーブルビューでターゲットにするNSURLRequestを指定できない理由を誰かが知っていますか?ありがとうございました!

4

1 に答える 1

0

両方のURLのデータを表示しますか?

はいの場合は、リクエストを実行NSMUtableArrayする前に、配列を取得して初期化する必要があります。ViewDidloadそして、各URLから配列にオブジェクトを追加する必要があります。

例:

[DataArray addObject:@"Yourdata"];

[Yourtable reloadData];

セグメント化されたコントロールに従ってデータを分離する必要がある場合は、データを別の配列に保存します。

MyfirstArray= @"Data from URL 1";

MySecondArray= @"Data from URL 2";


-(IBAction)SegmentChange:(Id)sender
{
if(segmented.selectedSegmentIndex==0)

{
items=MyfirstArray;

[mytable reloadData];

}

else

{
items=MysecondtArray;

[mytable reloadData];
}

}

また、Switchステートメントを取ることができます。

于 2012-12-21T11:10:28.720 に答える