这是代码。这很直截了当。我创建了两个类,一个是返回错误并为另一个类(TheView)的iVar加水并将其显示给用户。但是我无法弄清楚为什么View在任何时候都返回Null。谢谢是先进的人。
@interface AccountControllerModel : NSObject {
NSString *anError;
}
@property (nonatomic, retain) NSString *anError;
AccountControllerModel.m
@synthesize anError;
- (void)uploadFailed:(ASIHTTPRequest *)theRequest{
RegistrationViewController *regoVC = [[RegistrationViewController alloc] init];
[regoVC manageTheError:@"THIS IS AN ERROR"];
[regoVC release]; regoVC = nil;
}
+++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++
@interface RegistrationViewController : UIViewController {
NSMutableString *test;
}
@property (nonatomic, assign) NSMutableString *test;
@synthesize test;
-(void)viewDidLoad {
test = [[NSMutableString alloc] init];
}
-(void)manageTheError:(NSString *)theError{
self.test = [NSMutableString stringWithFormat:@"%@",theError];
resultOfRegistration.text = [NSString stringWithFormat:@"%@",self.test];
NSLog(@"test is %@",self.resultOfRegistration.text); //It comes back Null
}
答案 0 :(得分:0)
答案 1 :(得分:0)
您的代码存在许多问题。
@property (nonatomic, assign) NSMutableString *test;
这里有两件事,一件是在一个属性中暴露一个NSMutable *对象永远不是一个好主意,两个你应该“复制”值对象,特别是因为这是你在代码中处理它的方式。制作此@property (nonatomic, copy) NSString *test;
regoVC.test = [NSMutableString stringWithString:self.anError];
您正在将自动释放的对象分配给assign属性,这是一个泄漏,上面的更改将解决这个问题。
NSLog(@"test is %@",test); // It is perfect as you expect
test
不在此范围内,但我认为应该是regoVC.test
,这些其他更改应该可以解决问题。