Когда кто-то голосует за вопрос ... любезно, пожалуйста, также прокомментируйте, почему вы его проголосовали.iOS: Dereferencing NSMutableArray
У меня есть UIView
(myHolderView), на котором я хочу разместить 9 или более других views
. Я добавил несколько экземпляров UIView
(MyView) в NSMutableArray
из 9 элементов().
На MyView есть надпись (UILabel
). Может кто-нибудь, пожалуйста, помогите, как получить текст ярлыка, используя ?
Примечание:
Я видя UIViews добавил к основному зрения держателя и получения этикетки на нем.
initWithFrame:(v,v,v,v) number: (value)
это методinit
, с которым я перегрузил init.// Эти два объявлены как глобальная переменная
NSMutableArray *tiles; MyView *tile; @implementation ViewController @synthesize myHolderView; - (void)viewDidLoad { [super viewDidLoad]; tiles=[[NSMutableArray alloc]initWithCapacity:9]; for (int xIndex=0; xIndex<3; xIndex++) { for(int yIndex=0; yIndex<3; yIndex++) { static int label=0; [tiles addObject:[[MyView alloc]initWithFrame:CGRectMake(value,value,value,value) number:[[NSString alloc] initWithFormat:@"%d",label+1]]]; [self.myHolderView addSubview:tiles[label]]; //Now - when I want to print the labels onto Console as NSLog messages //it is printing null MyView *n=[[MyView alloc]init]; n=(MyView *)[tiles objectAtIndex:label++]; NSLog(@"%@---", n.myLabel.text); //this also does not work. Definitely wrong dereferencing // NSLog(@"%@---", (MyView*) [tiles ObjectAtIndex:1].mylabel.text); //label++; } } }
Пожалуйста, помогите
как разыменовать NSMuableArray объектов к типу того, что мы хотим ( типа мы знаем это точно)
MyView:
- (id)initWithFrame:(CGRect)frame number:(NSString *)num;
{
self = [super initWithFrame:frame];
if (self) {
MyView *tile = [[[NSBundle mainBundle] loadNibNamed:@"XView" owner:self options:nil] objectAtIndex:0];
tile.myLabel.text=num;
[self addSubview:tile];
}
return self;
}
Почему в цикле вы не просто создать новый экземпляр и ссылаться на него? Ваше использование 'label ++', вероятно, вызовет проблемы, поскольку ваш подход грязный. – Wain
Я тоже это пробовал!И если вы видите, что я комментировал label ++ как отдельный оператор. Мой дизайн должен был быть изменен, и мне нужно иметь ссылку на созданные вами представления. Итак, я хотел сохранить свои ссылки в каком-то массиве. Итак, мне нужны представления, которые нужно добавить в массив. Можете ли вы предложить, как разыменовать объекты этого NSMutableArray в MyView? – Chandu
Если вы добавили свой просмотр в holderview, он уже удерживает его. то почему вы держите его снова? – Mani