1

UITableView にデータを入力する単一次元配列を解析する iOS アプリケーションを作成しました。ファイルの「名前」と xml からのファイルの「URL」の 2 つのエントリを配列に送信しようとしました。しかし、テーブル ビューには名前と URL が入力されています。名前をセルテキストとして、URLをセル詳細テキストとして表示したいです。何か助けはありますか?

 (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
//NSLog(@"%@",string);
if(count){
    listset1=[[NSMutableArray alloc]initWithCapacity:20];
    count=0;
}


if ([currentElementValue isEqualToString:@"Name"]) {
    [Name appendString:string];
    [listset1 addObject:[NSString stringWithFormat:@"%@",Name]];
        //    NSLog(@"%@",listset1);
}

if ([currentElementValue isEqualToString:@"URL"]) {
    [URL appendString:string];
    [listset1 addObject:[NSString stringWithFormat:@"%@",URL]];
    //NSLog(@"%@",URL);

}

Listset1 は、解析中の配列です。

4

3 に答える 3

1

Objective-C言語では不可能です。

2 つの配列を取得するか、「クラス」構造を参照します。

私はあなたのクラス構造を好むでしょう。

NameURLNSObjectの2 つのオブジェクトを持つNSStringのクラス タイプを作成します。

価値を得ながら、

sampleClass *objClass = [[sampleClass alloc] init];

objClass.strName = [NSString stringWithFormat:@"%@", strName];
objClass.strURL = [NSString stringWithFormat:@"%@", strURL];

[listArray addObject: objClass];

データを表示しながら、

for (int i = 0; i < [listArray count]; i++)
{
   objClass = [listArray objectAtIndex:i];

   NSLog(@" --> %@", objClass.strName);
   NSLog(@" --> %@", objClass.strURL);
}

ホープ、あなたは理解するでしょう。

ありがとう。

于 2013-03-19T08:26:35.897 に答える
0

名前とURLをNSMutableDictionary保存して保存しますNSMutableArray

  -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{

        if(count){
           NSMutableArray* listset1=[[NSMutableArray alloc]initWithCapacity:20];
            count=0;
        }

         NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
        if ([currentElementValue isEqualToString:@"Name"]) {
            [Name appendString:string];
            [dict setValue:[NSString stringWithFormat:@"%@",Name] forKey:@"Name"];
        }

        if ([currentElementValue isEqualToString:@"URL"]) {
            [URL appendString:string];
            [dict setValue:[NSString stringWithFormat:@"%@",URL] forKey:@"URL"];

        }
        [listset1 addObject:dict];
        [dict release];
    }
于 2013-03-19T08:37:41.387 に答える
0

多次元配列は可能ではありません。

2 つの異なる配列があり、2 つの間のセマンティクスが保持されていると仮定しましょう。したがって、name[0] は url[0] に対応します

ビューコントローラーに次のメソッドを実装します

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

  static NSString *CellIdentifier;
 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textlabel.text=name[indexPath.row];
cell.detailTextLabel.text=url[indexPath.row];

return cell;


}
于 2013-03-19T08:43:15.860 に答える