Something like this should work:
NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:@"items.plist"];
for (NSDictionary * dict in array) {
UIButton * newBtn = [UIButton buttonWithType:UIButtonTypeSystem];
[newBtn setTitle:dict[@"id"] forState:UIControlStateNormal];
// -- Update for comment -- //
// See if data exists
if (dict[@"data"]) {
// if data's value is an image ...
[newBtn setImage:dict[@"data"] forState:UIControlStateNormal];
// In your question the values for @"data" are integers, so make sure you don't try to add that as an image.
}
// do other stuff with button ...
}