如何在目标c中的多个标签上显示文本文件中的随机单词

时间:2017-03-16 12:40:49

标签: ios objective-c nsstring

我有一个单词的文本文件,我让它在我的项目中读取它很好,现在我想将字符串分成两半并在我在视图上制作的多个标签上随机显示。

    NSString *myfilePath = [[NSBundle mainBundle] pathForResource:@"textFile" ofType:@"txt"];

NSString *linesFromFile = [[NSString alloc]   initWithContentsOfFile:myfilePath encoding:NSUTF8StringEncoding error:nil];

myWords = [NSArray alloc];
myWords = [linesFromFile componentsSeparatedByString:@"\n"];

NSLog(@"%@", myWords);

我制作了5个标签,如何让我的文本文件分割并随机出现在这五个标签上?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用此

  NSMutableArray *words = [myWords mutableCopy];
  for (int i = 0; i<5 ;i++)
  {
    NSInteger index = arc4random()%words.count;
    labels[i].text = words[index];
    [words removeObjectAtIndex:index];
  }

答案 1 :(得分:1)

AS -Sergey推荐我的一半问题解决了我能够在标签上显示文字文件的单词串。从代码中删除此标签[i] .text并调用

NSMutableArray<UILabel*>* labels = [NSMutableArray array];
NSMutableArray *words = [myWords mutableCopy];
for (int i = 0; i<5; i++) {
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(30, 70*i, 100, 40)];
    label.textColor = [UIColor whiteColor];
     //whatever other properties

    NSInteger index = arc4random()%words.count;
    label.text = words[index];
    [words removeObjectAtIndex:index];


    [self.view addSubview:label];
    [labels addObject: label];


}

这显示了一个完整的单词串现在我想要分成两个部分的单词字符串,例如,如果我有一个单词Apple它应该作为App和le分开并显示它随机出现在不同的标签上任何帮助赞赏。