Ugh, having some trouble here…
I have 4 display labels in Interface Builder set up as IBOutlets in the view controller.
I’ve set them up with these names
label1, label2, label3, label4
I’m want to change the label text for a randomly selected label
I’m trying this…
In the header file I declare as a property:
@property (nonatomic retain) UILabel *myLabel;
And then in my implementation file I synthesize and I’m trying
myLabel = [UILabel valueForKey: [NSString stringWithFormat:@"label%d", randomInt]];
myLabel.text = @"bleh!";
The myLabel = [UILabel … line is causing to crash. Any help? Thanks!
You have the right idea, but you should pass
valueForKey:toself, notUILabel, assuming itsselfthat owns these properties.As a side note, this is probably better done with an
IBOutletCollection. In Xcode 4, select all of the labels and drag them to the header file. This will generate anIBOutletCollection NSArraycontaining all the outlets. You can then pick a random index from that array. It is usually unfortunate thatIBOutletCollectionstores its outlets in a non-deterministic order, but for your case it should be fine.