J'adapte Ce tutoriel à mon application, et je l'ai réduit à une dernière erreur, qui m'arrête dans mes morceaux. Le programme est incapable de trouver une propriété dans un autre fichier, mais cette propriété est clairement définie. Voici le code en question:
La ligne d'erreur réelle:
for (DTContact *dtc in _dtContact.contact) {
le fichier .h pour le fichier et les éléments en question:
#import <UIKit/UIKit.h>
@class XMLTestViewController;
@class DTCXMLResponse;
@interface XMLTestController : UIViewController{
UIWindow *window;
XMLTestViewController *viewController;
DTCXMLResponse *_dtContact;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet XMLTestViewController *viewController;
@property (nonatomic, retain) DTCXMLResponse *dtContact;
@property (nonatomic, retain) IBOutlet UIButton *mybutton;
-(IBAction)buttonClicked;
@end
Il a des problèmes avec _dtContact.contact. Il ne trouve pas le contact dans le fichier DTCXMLResponse. Voici le fichier .h et la section du .m:
.h
#import <Foundation/Foundation.h>
@interface DTContactXMLResponse : NSObject {
NSMutableArray *_contact;
}
@property (nonatomic, retain) NSMutableArray *contact;
@end
.m
#import "DTCXMLResponse.h"
@implementation DTContactXMLResponse
@synthesize contact = _contact;
- (id)init {
if ((self = [super init])) {
self.contact = [[NSMutableArray alloc] init];
}
return self;
}
@end
Alors theres ça. Comme vous pouvez le constater, j'ai un 'contact' situé dans le fichier DTCXMLResponse.h et lié au fichier .m.
Cette erreur indique généralement que Xcode ne peut pas reconnaître votre symbole . Je peux supposer que c'est DTContact.
Essayez d'insérer ceci dans votre fichier .h:
#import DTContact.h
Ce n'est pas pertinent pour votre cas, mais j'ai eu la même erreur. J'ai cherché une solution sur Google mais le problème était dans mon code. J'utilisais un objet de classe différent en copiant un extrait de code similaire dans mon projet. Voici donc le problème que j'ai eu pour la même erreur:
Pour ma classe A, j'avais un extrait de code comme:
ManagedObjectOfClassA * managedObjectOfClassA = [NSEntityDescription insertNewObjectForEntityForName:@"ManagedObjectOfClassA" inManagedObjectContext:managedObjectContext];
managedObjectOfClassA.somePropertyA = sameValue; //somePropertyA is an attribute of ManagedObjectOfClassA
Et un code similaire pour la classe B:
ManagedObjectOfClassA *managedObjectOfClassB = [NSEntityDescription insertNewObjectForEntityForName:@"ManagedObjectOfClassB" inManagedObjectContext:managedObjectContext];
managedObjectOfClassB.somePropertyB = someValue;////somePropertyB is an attribute of ManagedObjectOfClassB
Si vous regardez de près, l’erreur est d’affecter les bonnes entités aux objets correspondants de la classe B.
Le problème est donc dans le code de classe B. Et le code correct serait:
ManagedObjectOf ClassB * managedObjectOfClassB = [NSEntityDescription insertNewObjectForEntityForName: @ "ManagedObjectOf ClassB " inManagedObjectContext: managedObjectContext];
managedObjectOf ClassB . somePropertyB . someValue;
J'espère que cela aide quelqu'un.