我通过以下方式将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时我在做什么错?
谢谢
汤姆
最佳答案
假设上面的两个代码段来自不同的方法,则locStatImage
可能会在从XML中获取和在cellForRowAtIndexPath方法中使用之间自动释放。
进一步假设locStatImage
是保留属性(如果不是),则在第一个代码示例中应使用
self.locStatImage = ...