2011-12-14 102 views
0

尝试在线程中使用类变量并获取EXC_BAS_ACCESS。 代码片段:线程参数Objective-C

@interface ViewController : UIViewController {  
    NSString* accountLoginName; 
    NSString* accountPassword; 
} 

实施:

accountLoginName = [NSString stringWithString:textFieldLoginName.text]; 
accountPassword = [NSString stringWithString:textFieldPassword.text]; 
[self performSelectorInBackground:@selector(loginAtBackgroundSelector:) withObject:nil]; 


-(void)loginAtBackgroundSelector:(UIAlertView*)alert 
{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    NSLog(@"%@\n%@", accountLoginName, accountPassword); 
    [self login]; 
    [self dismissAlert:alert]; 
    [pool release]; 
} 

只是想写信给控制台,在这部分代码得到错误,但在loginAtBackgroundSelector错误的时间出现的时间。在实施

@interface ViewController : UIViewController {  
    NSString* accountLoginName; 
    NSString* accountPassword; 
} 
@property(nonatomic, retain) NSString* accountLoginName; 
@property(nonatomic, retain) NSString* accountPassword; 

这(在地方,你分配值):Additionaly中的dealloc

self.accountLoginName = [NSString stringWithString:textFieldLoginName.text]; 
self.accountPassword = [NSString stringWithString:textFieldPassword.text]; 
[self performSelectorInBackground:@selector(loginAtBackgroundSelector:) withObject:nil]; 

-(AlertType)login 
{ 
    NSLog(@"%@\n%@", accountLoginName, accountPassword); 
} 

回答

0

接口试试这个

-(void)dealloc { 
    [accountLoginName release]; 
    [accountPassword release]; 
    [super dealloc]; 
} 

让我知道他是否他LPS。

+0

这就是诀窍:)上帝,我很愚蠢:D – user1098429 2011-12-14 18:49:54