Iphone загружает URL-адрес в переменную — статические работы, динамический из XML падает

#iphone #objective-c #ios #xcode #uitableview

#iPhone #objective-c #iOS #xcode #uitableview

Вопрос:

Я загружаю свой XML в свое приложение для iphone через:

 NSArray *Images = [doc nodesForXPath:kName_logo error:nil];//Root node
for (CXMLElement *ImgIcons in Images) 
{
    NSArray *locImage = [ImgIcons elementsForName:kName_image];
    for(CXMLElement *fullImage in locImage) 
    {
        LocationImage = fullImage.stringValue;
        locStatImage = LocationImage;
        NSLog(@"Image Found %@",LocationImage);
        break;
    }
}
  

И это нормально, это возвращает мне правильную строку

 2011-11-03 14:48:43.572 Del Search[13152:f203] Image Found http://de1128/directenquirieswebapplicationv3.0/images/logos/PremierInn.jpg
  

Однако, когда я загружаю его в свою таблицу с помощью следующего:

 if (indexPath.section == 0)
    {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierImage];

        if (cell == nil) 
        {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifierImage] autorelease];
            UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,180)];                
            imageView.tag = 1;
            NSURL *Imageurl = [NSURL URLWithString:[NSString stringWithFormat:@"%@", locStatImage]];
            NSData *data = [NSData dataWithContentsOfURL:Imageurl];
            UIImage *img = [[[UIImage alloc] initWithData:data] autorelease];
            imageView.image = img;

            [cell addSubview:imageView];
            [imageView release];


        }
        return cell;
    }
  

Приложение падает. Однако, если я вручную установлю locStatImage, выполнив:

 locStatImage = @"http://de1128/directenquirieswebapplicationv3.0/images/logos/PremierInn.jpg";
  

Все работает нормально. Что я делаю не так, когда устанавливаю locStatImage?

Спасибо

Том

Ответ №1:

Предполагая, что два приведенных выше фрагмента кода взяты из отдельных методов, locStatImage вероятно, они автоматически освобождаются между получением его из XML и использованием его в вашем методе cellForRowAtIndexPath.

Далее предполагается locStatImage , что это сохраненное свойство (если оно не должно быть), в вашем первом примере кода вы должны использовать

 self.locStatImage = ...