В настоящее время я использую прагматический скринкаст на Objective-C, чтобы помочь мне запрограммировать цель-c.Я имею опыт работы с Java и C ++, но мне очень трудно привыкнуть ко всему в Objective (в основном потому, что мне не нравится синтаксис).Ниже приведена ошибка, которую я получаю со всем кодом.Я также получаю предупреждение в классе movie.m: атомарное свойство Wirtable 'title' не может быть совмещено с синтезированным установщиком / получателем с заданным пользователем установщиком / получателем
спасибо за вашу помощь.1004 * Я получаю эту ошибку
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”.
Я запустил ее через отладчик, и адрес фильма в приведенном ниже коде выделен красным
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;}
Movie.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);
}