J'ai récemment lancé un nouveau projet dans Xcode 4.4 sous Mountain Lion. J'ai une classe appelée TSTopChartManager
qui se trouve dans la nib MainMenu de mon projet. J'ai également un conteneur de données appelé PodcastShow
qui possède essentiellement un ensemble de propriétés et une méthode permettant de récupérer une image sur Internet. C'est ce que TSTopChartManger
on dirait que...
Le fichier .h...
#import <Foundation/Foundation.h>
#import "PodcastShow.h"
@interface TSTopChartManager : NSObject
@property NSMutableArray *topPodcasts;
@end
Le fichier .m :
#import "TSTopChartManager.h"
@implementation TSTopChartManager
-(id) init
{
if (self)
{
/*PodcastShow *myShow = [[PodcastShow alloc] init];
myShow.title = @"This is a show";*/
}
return self;
}
@end
En ce moment, il fonctionne parfaitement. Mais lorsque je supprime le commentaire du bloc dans la méthode init comme ceci...
if (self)
{
PodcastShow *myShow = [[PodcastShow alloc] init];
myShow.title = @"This is a show";
}
Je reçois les erreurs suivantes..
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_PodcastShow", referenced from:
objc-class-ref in TSTopChartManager.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Je ne sais pas pourquoi cela se produit. Je n'ai jamais vu d'erreurs de ce genre auparavant. Comment dois-je m'y prendre pour le corriger ? Avez-vous des idées ? Je vous remercie.
Pour les curieux : PodcastShow
est traité comme un conteneur de données dans mon application. Il possède quelques propriétés et deux méthodes. Voici ce que PodcastShow
ressemble :
.h :
#import <Foundation/Foundation.h>
@interface PodcastShow : NSObject
{
NSString *title;
NSString *network;
NSString *imageURL;
NSImage *image;
NSString *link;
NSString *description;
}
-(void) fetch;
@property (strong, readwrite) NSString *title;
@property (strong, readwrite) NSString *network;
@property (strong, readwrite) NSString* imageURL;
@property (strong) NSImage *image;
@property (strong, readwrite) NSString *identification;
@property (strong, readwrite) NSString *link;
@property (strong, readwrite) NSString *description;
@end
m :
#import "PodcastShow.h"
@implementation PodcastShow
-(id) init
{
if (self)
{
NSLog(@"initilized");
}
return self;
}
-(void) fetch
{
[NSThread detachNewThreadSelector:@selector(getImageFromInternet) toTarget:self withObject:nil];
}
-(void) getImageFromInternet
{
self.image = [[NSImage alloc] initWithContentsOfURL:[NSURL URLWithString:self.imageURL]];
}
@end