I had this problem when I was new to OOP x).
Basically a variable when handling an object is just a pointer to the address in memory.
An array with objects will actually be an array with pointers to all unique objects, in your case these objects are UIButton's.
So in your for-loop you have to add those buttons inside another array.
var buttons = [UIButton]()
for answer in answers {
let btn = UIButton()
...
buttons.append(btn)
}
Then you can access each unique button by accessing them trough buttons.
buttons[2].setTitle("test 2", forControlEvent: .Normal)