Инструкции в viewdidload не выполняются - PullRequest
0 голосов
/ 23 августа 2011

Я столкнулся с досадной проблемой. У меня есть приложение, которое в основном состоит из нескольких методов: viewDidload, соединение: didReceiveResponse, соединение: didReceiveData ...

В моей viewDidload я определяю NSURLRequest для персонального сайта, и сразу после и до него я добавил label.text = @ "xxx". Я знаю, что проблема не в том, чтобы связать ярлык в IB, потому что раньше он отображал то, что я хотел.

Но теперь кажется, что ни одна из этих двух инструкций label.text не работает, хотя я знаю, что мой NSURLRequest работает, потому что количество полученных байтов изменяется, когда я меняю веб-сайт ... Почему? И я предполагаю, что другие инструкции, которые следуют, тоже не работают.

Я дам больше подробностей, когда смогу, на случай, если кто-нибудь сможет рассказать мне об этом.

Хорошего дня и спасибо за помощь

- (void)viewDidLoad {
 [super viewDidLoad];
 label.text=@"rrr";

request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://mywebsite.aspx?example=5"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 
label.text=@"aeza";

 NSURLConnection *connection=[[NSURLConnection alloc] initWithRequest:request delegate:self];

if (connection) {
    receiveddata=[[NSMutableData data] retain];
    label.text=@"NO BUG";
}
else {
label.text=@"BUG";
}
datastring = [[NSString alloc] initWithData:receiveddata encoding:NSUTF8StringEncoding];

components=[datastring componentsSeparatedByString:@"|"];

label.text=datastring;
[datastring release];
}

-(void) connection:(NSURLConnection *)connection didReceiveResponse: (NSURLResponse       *)response
{
[receiveddata setLength:0];
}

-(void) connection: (NSURLConnection *)connection didReceiveData: (NSData *)data
{
[receiveddata appendData:data];
}

-(void)connection: (NSURLConnection *)connection didFailWithError:(NSError *)error
{
[connection release];
[receiveddata release];
NSLog(@"Connection failed! Error - %@ %@",
      [error localizedDescription],
      [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
}

-(void) connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"Succeeded! Received %d bytes of data",[receiveddata length]);
[connection release];
[receiveddata release];
}
@end

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Я бы переместил эту логику установки в -viewWillAppear, а не в -viewDidLoad.

0 голосов
/ 25 августа 2011

Неважно, я заставил это работать, переместив инструкции в другой метод.

...