2015-04-15 1 views
0

J'utilise iOS SDK 8.3 et en essayant de suivre this tutorial pour créer une table dans une application de kit de montre.Aucune @interface visible pour 'WKinterfaceGroup' déclare le sélecteur: quelque chose a-t-il changé dans iOS 8.3?

J'ai ajouté un tableau sur le contrôleur d'interface de l'application iWatch, puis je l'ai lié à mon interfaceController. J'ai créé une classe de ligne personnalisée et lié la ligne à la classe de contrôleur de ligne. J'ai ensuite ajouté quelques éléments dans la rangée et les ai reliés aux prises dans la classe de contrôleur de ligne. Cependant, je reçois des erreurs:

enter image description here

C'est ma classe de contrôleur d'interface:

#import <WatchKit/WatchKit.h> 
#import <Foundation/Foundation.h> 

@interface InterfaceController : WKInterfaceController 

@property (strong, nonatomic) NSArray *devicesArray; 

@property (weak, nonatomic) IBOutlet WKInterfaceGroup *devicesTable; 

@end 

Et ceci est le code qui déclenche les erreurs:

- (void)awakeWithContext:(id)context { 
    [super awakeWithContext:context]; 
    NSLog(@"%@ initWithContext", self); 
    self.devicesArray = @[@"type A", @"type B"]; 
    [self.devicesTable setNumberOfRows:self.devicesArray.count withRowType:@"MyTableRowController"]; 

    [self.devicesTable enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 

     MyTableRowController* row = [self.devicesTable rowControllerAtIndex:idx]; 

     [row.deviceType setText: (NSString*)obj]; 
     [row.logo setImage:[UIImage imageNamed:(NSString *)obj]]; 

    }]; 

enter image description here

Répondre

1

En regardant le tutoriel, il semble avoir été un peu confus. Le WKInterfaceGroup utilisé est pour la sous-classe "MyTableRowController" que vous avez créée.

La principale "InterfaceController" devrait avoir devicesTable comme WKInterfaceTable

d'Apple Doc de sur WKInterfaceTable

d'Apple Doc de sur WKInterfaceGroup

+0

Merci beaucoup, désolé pour la question de base – mm24

+1

Pas de problème. Le tutoriel était légèrement déroutant d'être juste –

1

Votre devicesTable est déclaré en tant que WKInterfaceGroup qui prend en charge les méthodes que vous appelez. Je suis sûr que vous vouliez utiliser WKInterfaceTable. Vous avez probablement déplacé par inadvertance la connexion de votre table à partir du groupe et non de la table dans Interface Builder.

+0

Merci beaucoup, désolé pour la question de base – mm24