2010-08-09 2 views
0

Это код. Это довольно прямолинейно. Я сделал два класса: один возвращает ошибку и увлажняет iVar другого класса (TheView) и показывает его пользователю. однако я не могу понять, почему View возвращает Null во все времена. Спасибо заранее, ребята.Как изменить iVar другого класса

 @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

Пожалуйста, отредактируйте ваши вопросы и вопросы, чтобы задать вопрос. Вместо публикации copypasta и ожидая, что люди угадают, каков ваш вопрос, укажите код, в котором вы испытываете проблемы, связанные с вашим вопросом. Это поможет нам вам помочь. –

+0

Извините Alex, Исправлено это с правильным описанием. –

ответ

0

Алекс прав, некоторые разъяснения о том, что не работает бы помочь, но, глядя через я, возможно, нашли свою ошибку , [[NSNotificationCenter defaultCenter] postNotificationName: объект «Blah»: self], у вас есть объект, установленный в nil, который может быть вашей проблемой с уведомлением.

0

С кодом возникает ряд проблем.

@property (nonatomic, assign) NSMutableString *test;

Две вещи здесь, один, обнажая NSMutable * объект в собственности никогда не является хорошей идеей, два вы должны «копировать» объекты значение, особенно потому, что это то, как вы его обработки в вашем код. Сделать это @property (nonatomic, copy) NSString *test;

regoVC.test = [NSMutableString stringWithString:self.anError];

Вы Назначив autoreleased объект правопреемником имущества, это утечка, указанное изменение будет исправить.

NSLog(@"test is %@",test); // It is perfect as you expect

test не в объеме, но я бы предполагают, что должен был быть regoVC.test, эти другие изменения должны исправить ситуацию.

Смежные вопросы