2015-10-20 6 views
-1

Я хочу добавить случайное число перед моей меткой пользовательского интерфейса, это мой код, который не работает.Добавление случайного числа перед меткой пользовательского интерфейса

@IBOutlet var Label2: UILabel! 
@IBOutlet var Label1: UILabel! 
Label1.text! = "1" 
Label2.text! = "2" 
var random = arc4random_uniform(2) + 1 

if Label(random).text! == "1" { 
    print("This is Label 1") 
} else { 
    print ("This is Label 2") 
} 

Если есть какой-либо другой способ добавить случайное число перед ярлыком пользовательского интерфейса, я отвечу на него.

+0

Я не понимаю, цель этих. – t4nhpt

+0

@ t4nhpt Я не могу сказать вам цели. Я хочу знать, как это сделать – Alexander

ответ

1

Вы можете поместить свои метки в массив, а затем выбрать случайное одно:

@IBOutlet var label1: UILabel! 
@IBOutlet var label2: UILabel! 

var labels = [UILabel]() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    labels.append(label1) 
    labels.append(label2) 

    var random = Int(arc4random_uniform(2)) 

    if labels[random].text! == "1" { 
     print("This is Label 1") 
    } else { 
     print ("This is Label 2") 
    } 
} 
+0

Perfect Approach Thankyou – Alexander

+0

Добро пожаловать. – pkacprzak

2

Использование IBOutletCollection

@IBOutlet var label: [UILabel]! 
label[0].text! = "1" 
label[1].text! = "2" 
var random:Int = Int(arc4random_uniform(2)) 

if label[random].text! == "1" { 
    print("This is Label 1") 
} else { 
    print ("This is Label 2") 
} 

UPDATE:

  1. убедитесь, что все метки, которые вы хотите в массиве подсвечивается
  2. правой кнопкой мыши и перетащить на ваш взгляд коллекции
  3. комплект подключения к Сбор на выходе

enter image description here

+0

У меня есть 2 ярлыка пользовательского интерфейса в моей основной доске объявлений, и это будет связано только с одним. – Alexander

+0

есть разница между «Outlet» и «Outlet Collection», я думаю, вы запутались. Прочитайте снова обновленный ответ и попробуйте сами. –

+0

Кстати, он должен быть Int (arc4random_uniform (2)) для правильного литья –

0

Похоже, что вы пытаетесь достичь с помощью Label(random) является динамически изменять этикетки имя переменной. Как указано в other question, это, вероятно, плохая практика. Итак, я бы порекомендовал вам сначала прочитать Create a variable in swift with dynamic name.

[править:] Просто чтобы дать пример, вы можете сделать это с помощью массива, например:

// Creating two UILabels: 
var label1 = UILabel() 
var label2 = UILabel() 

label1.text = "0" 
label2.text = "1" 

// An array of Labels, which starts from 0: 
let labels: [UILabel] = [label1, label2] 
// Another random function which goes to the size of the array: 
var i = random() % labels.count 

// Just to check the random number: 
print("Your random number: \(i)") 

// And then, the test: 
if labels[i].text == "0" { 
    print("This is Label 0: \(labels[i].text)") 
} else { 
    print ("This is Label 1: \(labels[i].text)") 
} 

Просто применить эти идеи к вашим IBOutlet переменных.

Надежда это помогает: D

+0

Речь идет о UILabel, а не только переменной метки. – Alexander

Смежные вопросы