gpt4 book ai didi

iphone - Plist文件中的"Load"文本并使用它(Xcode)

转载 作者:行者123 更新时间:2023-11-28 18:39:04 25 4
gpt4 key购买 nike

我有 4 个 UI 按钮和一个 UILabel。我想做 4 个单词(来自 plist 文件)随机显示在 4 个按钮上(一个按钮有一个单词)和一个单词显示在标签上(与按钮)。我怎样才能做到这一点?

最佳答案

假设您的 plist 名为 words.plist 并且您有一个包含 4 个 UIButtons 的数组

NSString * path = [[NSBundle mainBundle] pathForResource:@"words" ofType:@"plist"];
NSMutableArray * words = [NSMutableArray arrayWithContentsOfFile:path];

现在您在 words 数组中拥有了所有可能的单词。此时我们需要 4 个唯一的随机索引,这基本上意味着在随机洗牌后取数组的起始 4 个元素。我们将使用 Fisher-Yates shuffle algorithm正如 this 中所建议的那样回答。

for (int i = words.count - 1; i > 0; --i) {
int r = arc4random_uniform(i);
[words exchangeObjectAtIndex:i withObjectAtIndex:r];
}

现在我们有了一个随机打乱的单词数组,我们只需要前 4 个元素并将它们分配给按钮。它看起来像:

for (int j = 0; j < buttons.count; j++) {
UIButton * button = [buttons objectAtIndex:j];
button.titleLabel.text = [words objectAtIndex:j];
}

最后我们给标签分配一个词,在我们用于按钮的索引之间随机选择一个索引:

yourLabel.text = [words objectAtIndex:arc4random_uniform(buttons.count)];

这个解决方案适用于任意数量的按钮,由于混洗算法(这绝对比检查已经生成的索引更好)保证它是有效的并且由于使用 随机生成没有偏差arc4random_uniform

关于iphone - Plist文件中的"Load"文本并使用它(Xcode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com