J'utilise actuellement le screencast pragmatique sur Objective-C pour m'aider à programmer en objectif-c. J'ai un background en Java et C++, mais j'ai du mal à m'habituer à tout dans Objective (surtout parce que je ne suis pas à l'aise avec la syntaxe). Voici l'erreur que je reçois avec tout le code. Je reçois aussi un avertissement en classe movie.m ainsi: Wirtable propriété atomique « title » ne peut être coupler un setter synthétisé/getter avec un setter défini par l'utilisateur/getterObjective-C error Aide EXC_BAD_ACCESS
Merci pour votre aide.
Je suis recevoir cette erreur
Current language: auto; currently objective-c
warning: Couldn't find class validation function, calling methods on uninitialized objects may deadlock your program.
Program received signal: “EXC_BAD_ACCESS”.
Je l'ai couru à travers le débogueur et l'adresse du film dans le code ci-dessous est en rouge
main.m
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Movie *movie = [[Movie alloc] initWithTitle:@"iron man"
andRating:5
andYear:2008];
[movie play];
NSLog(@"our movie is %@", movie);
[pool drain];
return 0;}
Film. h
interface Movie : NSObject {
NSString *title;
int rating;
int year;
}
- (id)initWithTitle:(NSString *)newTitle
andRating:(int)newRating
andYear:(int) year;
@property(assign) NSString *title;
@property(assign) int rating;
@property(assign) int year;
-(void) play;
@end
Movie.m
#import "Movie.h"
@implementation Movie
@synthesize title;
@synthesize rating;
@synthesize year;
-(id)initWithTitle:(NSString *)newTitle
andRating:(int)newRating
andYear:(int)newYear;
{
self = [super init];
if(nil != self){
self.title = newTitle;
self.rating = newRating;
self.year = newYear;
}
return self;
}
-(NSString *) description{
NSString *oldDescription = [super description];
return [NSString stringWithFormat: @"%@ title =%@, rating =%d year=%@",
oldDescription, self.title, self.rating, self.year];
}
- (void)setTitle:(NSString *)newTitle {
title = [newTitle capitalizedString];
}
-(void) play {
NSLog(@"Playing %@", self);
}
Merci pour votre aide. Cela fonctionne maintenant, je ne suis pas allé au point de dealloc, mais merci. Je continue à faire cette erreur. – seanb511