将字符串数组传递给方法不会更新标签文本中的每个字符串

时间:2017-02-08 11:28:13

标签: objective-c arrays methods parameters uilabel

帮我解决这个问题.. 实际上我有一个字符串数组。 我将这些数组作为参数传递给另一个方法,其中这些字符串打印在标签中。 问题是我只获得标签中数组的最后一个索引.. 我需要做什么,用于在Label中显示每个索引字符串?

-(void)method{
       NSArray *array=[NSArray arrayWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",@"seven",@"eight",@"nine",@"ten", nil];
       for(int i=0;i<10;i++){

        NSString *temp=[NSString stringWithFormat:@"%@",array[i]];
        [self setTextForLoader:temp];


    }
  }
+(void)setTextForLoader:(NSString*)loaderStr{

    NSLog(@"loaderStr-->%@",loaderStr);

   [activityViewLabel setText:@""];

    NSString *str = [NSString stringWithFormat:@"%@ %@",@"Syncing",loaderStr];

    [activityViewLabel setText:str];
    Sleep(1);

 }

1 个答案:

答案 0 :(得分:0)

像这样更改您的代码。问题是您在sleep线程上调用了main方法。

用于调用方法。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        //Do background work
        [self method];
});

这样的setTextForLoader方法。

-(void)setTextForLoader:(NSString*)loaderStr{

    NSLog(@"loaderStr-->%@",loaderStr);

    [_labelTimer setText:@""];

    NSString *str = [NSString stringWithFormat:@"%@ %@",@"Syncing",loaderStr];
    dispatch_async(dispatch_get_main_queue(), ^{
      [_labelTimer setText:str];
    });


    sleep(1);

}