我正在进行xml解析.....
其解析数据完全成功。我需要显示标题,日期,时间和图片。
它适用于标题,日期,时间,
现在我需要显示图片......
为图片获取一些网址.....
aEventInfo.event_Picture=http://static.djguide.nl/image/flyers/2010/120/91426front.jpg
NSURL *url3 = [NSURL URLWithString:aEventInfo.event_Picture];
NSData *data = [NSData dataWithContentsOfURL:url3];
NSLog(@"%@data",data);
UIImage *imageView =[[UIImage alloc] initWithData:data];
CGSize size;
size.width=400;
size.height=400;
UIImage *scaledImage = [imageView scaleToSize:size];
cell.imageView.image=scaledImage;
我确实喜欢这个崩溃...如果我有图像网址。
如果aEventInfo.event_picture = nil。 它没有崩溃。
如果aEventInfo.event_picture中有任何值.. 例 http://static.djguide.nl/image/flyers/2010/120/91426front.jpg 我的应用程序崩溃了。
我不知道该怎么做..
任何人都可以建议我 并在这种情况下帮助我。
@thanks提前。
答案 0 :(得分:1)
您应该使用连接方法。例如,connectionDidReceive,ConnectionDidFinish。您应首先使用连接对象创建请求并建立连接。在那之后减去连接方法。
答案 1 :(得分:0)
aEventInfo.event_Picture是一个NSString?你正在初始化它吗?因为检索图像的代码似乎没问题,所以你的问题似乎是你传递的字符串来获取URL。
应该是这样的:
NSString* urlString= @"http://static.djguide.nl/image/flyers/2010/120/91426front.jpg";
然后NSURL *url3 = [NSURL URLWithString:urlString];
答案 2 :(得分:0)
我尊重Open..source
这是我的代码...... //解析课.....
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict{
if ([elementName isEqualToString:@"events"]) {
appDelegate.eventListArray=[[NSMutableArray alloc]init];
}
if ([elementName isEqualToString:@"event"]) {
// NSString * stringValue = [attributeDict objectForKey:@"id"];
// [appDelegate.eventListArray addObject:stringValue];
aEventInfo=[[EventInfo alloc]init];
aEventInfo.event_ID=[attributeDict objectForKey:@"id"];
aEventInfo.event_Title=[attributeDict objectForKey:@"title"];
aEventInfo.event_Description=[attributeDict objectForKey:@"description"];
aEventInfo.event_Date=[attributeDict objectForKey:@"date"];
aEventInfo.event_Time=[attributeDict objectForKey:@"time"];
aEventInfo.event_Location=[attributeDict objectForKey:@"location"];
aEventInfo.event_Street=[attributeDict objectForKey:@"street"];
aEventInfo.event_City=[attributeDict objectForKey:@"city"];
aEventInfo.event_Visitors=[attributeDict objectForKey:@"visitors"];
aEventInfo.event_Organisation=[attributeDict objectForKey:@"organisation"];
aEventInfo.event_Price=[attributeDict objectForKey:@"price"];
aEventInfo.event_Minimum_Age=[attributeDict objectForKey:@"minimum_age"];
aEventInfo.event_Picture=[attributeDict objectForKey:@"picture"];
aEventInfo.event_Genre=[attributeDict objectForKey:@"genre"];
aEventInfo.event_LineUP=[attributeDict objectForKey:@"lineup"];
aEventInfo.event_WebSite=[attributeDict objectForKey:@"website"];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if ([elementName isEqualToString:@"events"]) {
NSLog(@"Value of appDelegate is %@",appDelegate.eventListArray);
}
if ([elementName isEqualToString:@"event"]) {
[appDelegate.eventListArray addObject:aEventInfo];
NSLog(@"appDelegate.eventListArray count %d",[appDelegate.eventListArray count]);
}
}
//在我的tableview中显示数据.... 来自控制器类。 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { //返回部分的数量。 返回1; }
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
// return [categorieArray count];
return [appDelegate.eventListArray count];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
cell.selectionStyle= UITableViewCellSelectionStyleBlue;
cell.backgroundColor=[UIColor blueColor];
cell.textLabel.textColor=[UIColor redColor];
cell.detailTextLabel.textColor=[UIColor blackColor];
cell.detailTextLabel.font=[UIFont systemFontOfSize:10];
}
aEventInfo=[[EventInfo alloc] init];
aEventInfo=[appDelegate.eventListArray objectAtIndex:indexPath.row];
cell.textLabel.text=aEventInfo.event_Title;
cell.detailTextLabel.text=[NSString stringWithFormat:@"City: %@\n Date: %@ Time: %@",[aEventInfo event_City],[aEventInfo event_Date],[aEventInfo event_Time]];
NSURL *url3 = [NSURL URLWithString:aEventInfo.event_Picture];
NSData *data = [NSData dataWithContentsOfURL:url3];
NSLog(@"%@data",data);
UIImage *imageView =[[UIImage alloc] initWithData:data];
CGSize size;
size.width=400;
size.height=400;
cell.imageView.image=[UIImage imageNamed:imageView];
return cell;
}
// EventInfo类
@interface EventInfo : NSObject {
NSString *event_ID;
NSString *event_Title;
NSString *event_Description;
NSString *event_Date;
NSString *event_Time;
NSString *event_Location;
NSString *event_Street;
NSString *event_City;
NSString *event_Visitors;
NSString *event_Organisation;
NSString *event_Minimum_Age;
NSString *event_Price;
NSString *event_Picture;
NSString *event_Genre;
NSString *event_LineUP;
NSString *event_WebSite;
}
@property (nonatomic,retain)NSString *event_ID;
@property (nonatomic,retain)NSString *event_Title;
@property (nonatomic,retain)NSString *event_Description;
@property (nonatomic,retain)NSString *event_Date;
@property (nonatomic,retain)NSString *event_Time;
@property (nonatomic,retain)NSString *event_Location;
@property (nonatomic,retain)NSString *event_Street;
@property (nonatomic,retain)NSString *event_City;
@property (nonatomic,retain)NSString *event_Visitors;
@property (nonatomic,retain)NSString *event_Organisation;
@property (nonatomic,retain)NSString *event_Minimum_Age;
@property (nonatomic,retain)NSString *event_Price;
@property (nonatomic,retain)NSString *event_Picture;
@property (nonatomic,retain)NSString *event_Genre;
@property (nonatomic,retain)NSString *event_LineUP;
@property (nonatomic,retain)NSString *event_WebSite;
@end
答案 3 :(得分:0)
您是否尝试过使用TouchXML?使用TouchXML,XML解析变得非常容易使用。我使用NSXMLParser遇到了同样的问题。切换到TouchXML,XML解析变得更容易。
选中此link