Помощь с Свойством Подкласса - PullRequest
0 голосов
/ 30 августа 2010

У меня есть подкласс UIView, называемый Card, который я передвигаю на своей доске и помещаю в горячие точки, называемые слотами.Когда я бросаю карту, я использую hitTest, чтобы выяснить, бросаю ли я карту в одну из своих горячих точек.Я хочу получить собственность в этой горячей точке, но у меня возникают проблемы с тем, чтобы это работало должным образом.Мое единственное предположение, что hitTest возвращает UIView, а моя горячая точка - это подкласс UIView.Я получаю сообщение об ошибке: «Запрос на членство« slotIndex »в чем-то, не являющемся структурой или объединением»

Вот метод TouchesEnded, который я использую в классе карты

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent*)event { 

   UITouch *touch = [touches anyObject];   
   CGPoint location = [touch locationInView:self.superview];

   [self setUserInteractionEnabled:NO];

   UIView *backView = [self.superview hitTest:location withEvent:nil];

   if ([backView isKindOfClass:[CardSlot class]]) {
      self.center = backView.center;

      NSLog(@"Slot Number: %@", backView.slotIndex);

   } else {
      //Move it back to the top corner
      self.center = CGPointMake(50,50);
   }

   [self setUserInteractionEnabled:YES];

}

Мой вопроскак мне пройти тестирование, если я нахожусь в горячей точке слота, а затем получить свойства этого слота (подкласс UIView)?

1 Ответ

0 голосов
/ 30 августа 2010

Чтобы помочь компилятору, вам нужно привести указатель к слоту CardSlot после определения того, что он один.Таким образом, компилятор может узнать о свойстве slotIndex.Например:

if ([backView isKindOfClass:[CardSlot class]]) {
    CardSlot *cardSlot = (CardSlot *)backView;
    // From here you can access cardSlot.slotIndex
}
...