У меня проблема с программированием для iOS. Уже искали похожие проблемы, но пока ничего не нашли.
Я создаю как минимум 8 пользовательских UIViews. Как вы можете видеть в прилагаемом коде, я выполняю цикл, создающий один экземпляр за раунд. Ссылка каждого объекта находится в другом месте в памяти, но когда я изменяю значение в одном объекте, это влияет только на объект, который был создан в последнем цикле (последний созданный экземпляр).
Есть идеи?
PadView.h:
#import <UIKit/UIKit.h>
@interface PadView : UIView {
}
- (void)setText:(NSString*)text;
@end
PadView.m:
#import "PadView.h"
#import "AVFoundation/AVFoundation.h";
@implementation PadView
AVAudioPlayer *player;
UILabel *label;
- (void)setText:(NSString*)text {
label.text = text;
}
- (void)initialize {
label = [[ UILabel alloc ] initWithFrame:CGRectMake(0.0, 93.0, 107.0, 13.0)];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:9];
label.textAlignment = UITextAlignmentCenter;
label.text = @"Empty";
[self addSubview:label];
[label release];
}
- (id) initWithCoder:(NSCoder *)aCoder {
if (self = [super initWithCoder:aCoder]) {
[self initialize];
}
return self;
}
- (id) initWithFrame:(CGRect)rect {
if (self = [super initWithFrame:rect]) {
[self initialize];
}
return self;
}
- (void)dealloc {
[super dealloc];
}
@end
Создание объектов:
NSMutableArray *pads = [[NSMutableArray alloc] initWithCapacity:8];
for (int i = 0; i < 8; i++) {
PadView *pad = [[PadView alloc] initWithFrame:CGRectMake(0.0, i*150, 107.0, 107.0)];
[padsView addSubview:pad];
[pads addObject:pad];
}
Call setText:
PadView *pad = [pads objectAtIndex:5];
[pad setText:@"test"];