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 ];        
    } 

我必须在 UIlabel 中将这些 ID 显示为:1、2

我该怎么做?

4

5 回答 5

1

您正在运行一个 for 循环,它将继续执行直到它的最后一个增量。因此将显示数组中的最后一个值。所以你可以做的是你可以添加一个计时器而不是一个 for 循环,如果你想NSmutableArrayUILabel.

编辑:

-(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 回答
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 回答
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
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

您可以创建一个对象数组(索引)并使用componentsJoinedByString:

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

或使用您的代码,替换

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

和:

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