2010-08-30 7 views
0

У меня есть подкласс 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 Subclass)?

ответ

0

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

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

Благодарим за быстрый и полезный ответ. – SonnyBurnette

Смежные вопросы