2011-01-19 67 views
2

我一直在試圖弄清楚這一點,但我無法弄清楚我做錯了什麼。EXC_BAD_ACCESS當調用目標C中的類init時

我寫了一個類,每當我嘗試初始化它,我得到一個EXC_BAD_ACCESS錯誤。我甚至無法進入初始化。

任何人有任何想法我做錯了什麼?

User *myUser = [myUser init]; 

.h文件中:

#import <Foundation/Foundation.h> 


@interface User : NSObject { 
    long rowId; 
    NSString *email; 
    NSString *password; 
    NSString *fileVersion; 
} 

@property long rowId; 
@property (assign) NSString *email; 
@property (assign) NSString *password; 
@property (assign) NSString *fileVersion; 

@end 

.m文件

#import "User.h" 


@implementation User 

@synthesize rowId, email, password, fileVersion; 

-(id)init { 

    self = [super init]; 
    return self; 
} 

@end 
+2

請務必理解什麼是_assign_屬性,以及爲什麼NSString *屬性不是常見的_assign_(提示:它們通常是_copy_)。 – 2011-01-19 23:06:22

回答

11

你有實際分配對象:

User *myUser = [[User alloc] init]; 

不要忘記release它當你完成使用它。

+0

或分配時自動釋放它(在這種情況下,通常會編寫一個輔助類方法來執行`alloc` /`init` /`autorelease`)。 – 2011-01-19 23:58:47

相關問題