我是一個新手,編寫簡單的程序,並且在編譯期間沒有警告/錯誤。我收到「EXC_BAD_ACCESS」錯誤。會明白任何這方面的幫助:目標C:「EXC_BAD_ACCESS」錯誤
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
moviedatabase *movie1=[[moviedatabase alloc] init];
[movie1 addMovieWithName:@"DDLJ" andyear:1789 andlength:360 andGenre:Horror];
[movie1 printAll];
[movie1 release];
[pool drain];
return 0;
}
這裏是moviesdatabase類和電影類爲繼承:
@interface moviedatabase : movies{
//no variables in the class
}
-(void) addMovieWithName: (NSString *)mname andyear: (int) myear andlength: (int) mlength andGenre: (enum Genre) mgenre;
-(void) printAll;
@end
@interface movies : NSObject {
NSString *name;
int year;
int length;
enum Genre {Comedy,Drama,Horror,Action} genre;
}
@property (nonatomic) NSString *name;
@property (nonatomic) int year;
@property (nonatomic) int length;
@property (nonatomic) enum Genre genre;
-(id) initWithName: (NSString *)name andyear: (int) year andlength: (int) length andGenre: (enum Genre) genre;
@end
包括moviedatabase執行:
#import "moviedatabase.h"
@implementation moviedatabase
-(void) addMovieWithName: (NSString *) mname andyear: (int) myear andlength: (int) mlength andGenre: (enum Genre) mgenre
{
name=mname;
year=myear;
length=mlength;
genre=mgenre;
}
-(void) printAll;
{
NSLog(@"name=%@, year=%@, length=%@, genre=%@",name,year,length,genre);
}
@end
也許向我們展示'moviedatabase'類可能會有所幫助。此外,當您顯示源代碼時,請突出顯示問題編輯器中的代碼,然後按頂部的010101圖標縮進。 – BoltClock 2010-10-10 07:06:41
作爲@ BoltClock評論的附錄,根據我們在'main'函數中可以看到的,沒有什麼不是有序的,'EXC_BAD_ACCESS'源於'addMovieWithName'或'printAll'方法中的代碼。 – 2010-10-10 07:16:49
@Vatsaf,我們還需要看看'@ implementation'。 – 2010-10-10 07:18:22