2

UIlabel に NSmutableArray データを表示する必要があります。ただし、最後のインデックス テキストのみが追加されます。これが私のコードです。

marray:
(
{ 
ID=1;
}
{
ID="2"
}
)

 for(int i=0;i<[marray count];i++)
    {
        eventName=[[arr2 objectAtIndex:i]objectForKey:@"Code"];
       label.text=[NSString stringWithFormat:@"ID :%@",eventName ];        
    } 

これらの ID を UIlabel に次のテキストで表示する必要があります: 1 , 2

どうすればいいですか?

4

5 に答える 5

1

以下のようにラベルでそのオブジェクトを使用するよりも、NSStringオブジェクトに文字列を追加できます

NSMutableString *lblstr=@"ID :";

for (int i=0; i<[marray count]; i++) {
    eventName=[[arr2 objectAtIndex:i]objectForKey:@"Code"];
    [lblstr appendString:[NSString stringWithFormat:@"%@",eventName ]];
}
label.text=lblstr;
于 2012-10-16T07:21:43.580 に答える
1

最後のインクリメントまで実行を続ける for ループを実行しています。したがって、配列の最後の値が表示されます。あなたができることは、 for ループの代わりにタイマーを追加できることです。NSmutableArrayこれは、UILabel.

編集:

-(IBAction) rotate3
{
    NSString *number = [self.dayArray description];
    NSArray *array = [[NSArray alloc] initWithObjects: @"0", @"1", @"2", @"3", @"4", @"5" ,@"6", @"7", @"8",@"9",@"10",@"11",@"12",@"13", @"14", @"15", @"16", @"17", @"18", @"19",nil];
    numberCount++;
    timer=[NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(rotate3 )userInfo:nil repeats:YES];    
    self.dayArray = array;
    [array release];

    label.text = [NSString stringWithFormat:@"Day %@  ", number];
}

これらのリンクも確認してください iOSでUILabelをプログラムで更新する方法 および UILabelでNSArrayを表示してタイマーを使用する方法

于 2012-10-16T07:14:59.830 に答える
0
NSMutableString *str = [[NSMutableString alloc] init];

for(int i=0;i<[marray count];i++)
{
   NSString *temp = [NSString stringWithFormat:@"%d - %@\n",i+1, [[arr2 objectAtIndex:i]objectForKey:@"Code"]];

  [str appendString:[NSString stringWithFormat:@"%@",temp]];

   //sleep(0.05); //Remove comment this line may help ! **Tricky Line**
}

label.text = str;

[str release];
于 2012-10-16T07:39:10.553 に答える
0
Try the below Code. 
NSString *temp=@"";
for(int i=0;i<[marray count];i++)
    {

        //eventName=[[arr2 objectAtIndex:i]objectForKey:@"Code"];
        temp=[temp stringByAppendingString:[[arr2 objectAtIndex:i]objectForKey:@"Code"]];

        temp=[temp stringByAppendingString:@" ,"];
    } 
 temp = [temp substringToIndex:[temp length]-1];
label.text=[NSString stringWithFormat:@"ID :%@",temp ];
于 2012-10-16T07:18:30.287 に答える
0

オブジェクト(インデックス)の配列を作成して使用することができますcomponentsJoinedByString:

NSString* str = [array componentsJoindeByString: @", "];

または、コードを使用して、置き換えます

label.text=[NSString stringWithFormat:@"ID :%@",eventName ]; 

と:

label.text=[label.text stringByAppendingFormat:@", %@", eventName]; 
于 2012-10-16T07:52:32.497 に答える