Pourquoi est-ce que je reçois une erreur pour cela?
-
22-08-2019 - |
Question
Pourquoi suis-je recevoir ces erreurs? texte alt http://img39.imageshack.us/img39/2203/help.tif
Il dit:
Erreur: Demande de membre "jokeTableView" quelque chose pas struction ou union
Qu'est-ce que cela signifie? Et pourquoi est-il casse. J'ai essayé la lecture sur initWithStyle mais je ne pouvais rattraper ce
Voici mon fichier .h:
#import <UIKit/UIKit.h>
@interface TableViewController : UITableViewController {
NSMutableArray *jokes;
IBOutlet UITableView *jokeTableView;
}
@property (nonatomic, retain) NSMutableArray *jokes;
@end
Merci!
La solution
Votre objet (TableViewController) n'a pas de propriété du nom jokeTableView.
Pour accéder jokeTableView avec l'opérateur de point spécial, il doit être une propriété. Sinon, vous devez accéder à l'aide-valeur-clé de codage des méthodes conformes ou directement en utilisant l'opérateur -> (ou tout simplement l'utiliser comme un Ivar et aucune référence à l'auto):
jokeTableView.delegate = self;
ou
self->jokeTableView.delegate = self;
ou
[self jokeTableView].delegate = self;
ou
@property (retain) UITableView *jokeTableView;
// later...
self.jokeTableView.delegate = self;
A noter également, cependant, que vous définissez une sortie dans l'initialiseur et cela ne fonctionnera pas. Vous devrez régler dans la -. La méthode [TableViewController awakeFromNib] depuis l'auto> jokeTableView sera égal à zéro lorsque le initialiseur est en fait appelé (ce qui se produit dans IB avant sérialisation l'objet dans le fichier nib)
Autres conseils
Puisque vous faites cela au moment init, les sorties doivent être NULL, cette initialisation ne doit pas faire quoi que ce soit. Cela devrait être fait au moment awakeFromNib au plus tôt.