2013-03-06 50 views

回答

3

我在我的cellForRowAtIndexPath功能,这样,当电池显示

MWFeedItem *item = itemsToDisplay[indexPath.row]; 
if (item) { 
    NSString *htmlContent = item.content; 
    NSString *imgSrc; 

    // find match for image 
    NSRange rangeOfString = NSMakeRange(0, [htmlContent length]); 
    NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"(<img.*?src=\")(.*?)(\".*?>)" options:0 error:nil]; 

    if ([htmlContent length] > 0) { 
     NSTextCheckingResult *match = [regex firstMatchInString:htmlContent options:0 range:rangeOfString]; 

     if (match != NULL) { 
      NSString *imgUrl = [htmlContent substringWithRange:[match rangeAtIndex:2]]; 
      NSLog(@"url: %@", imgUrl); 

      //NSLog(@"match %@", match); 
      if ([[imgUrl lowercaseString] rangeOfString:@"feedburner"].location == NSNotFound) { 
       imgSrc = imgUrl; 
      } 
     } 
    } 
} 

注意,我也忽略了图像,如果它有“Feedburner的”在其搜索图像中使用此避免feedburner类型图标的网址。

我也使用AFNetwork的类时,我显示出图像后

if (imgSrc != nil && [imgSrc length] != 0) { 
     [myimage setImageWithURL:[NSURL URLWithString:imgSrc] placeholderImage:[UIImage imageNamed:IMAGETABLENEWS]]; 
    } else { 
     NSLog(@"noimage"); 
     cell.imageView.image = [UIImage imageNamed:IMAGETABLENEWS]; 
     //[myimage setImage:[UIImage imageNamed:IMAGETABLENEWS]]; 
    } 

我已经离开我的评论的NSLog部分,所以你可以取消和检查,如果你想

确保你有一个IMAGETABLENEWS不断为占位符或根据需要摆脱那部分。

这只是一个非常简单的HTML文本图像检查,并不全面。它符合我的目的,并可能帮助您将自己的逻辑变得更加细致。

+1

GOOOOOOOD工作的人的图像链接!感谢:-)) – stepik21 2013-07-16 13:30:55

+0

只是一个问题......有没有办法让所有图像换页而不只是一个?谢谢:-) – stepik21 2013-07-16 15:02:54

+0

非常感谢你的工作。 NSRegularExpression成功。 – 2013-12-05 20:40:13

1

如果您MWFeedItem有嵌在它的enclosure-tag,你可能要考虑做以下的图像:

MWFeedItem有一个名为enclosures属性。它是一个包含一个或多个字典的数组。

这个词典产生于 - (BOOL)createEnclosureFromAttributes:(NSDictionary *)attributes andAddToItem:(MWFeedItem *)currentItemMWFeedParser.M)。

这些字典有三个按键(如果可用):urltype & length


那第一个可能是你正在寻找的那个。我设法得到它像这样:

供稿示例

<item> 
     <title>Item title</title> 
     <link>http://www.yourdomain.com</link> 
     <description>Item description</description> 
     <pubDate>Mon, 01 Jan 2016 12:00:00 +0000</pubDate> 
     <enclosure url="http://www.yourdomain.com/image.jpg" length="0" type="image/jpeg"></enclosure> 
     <category>Algemeen</category> 
    </item> 

请注意里面<enclosure></enclosure>

YourViewController.m

- (void)feedParser:(MWFeedParser *)parser didParseFeedItem:(MWFeedItem *)item { 
    NSArray *EnclosureArray = item.enclosures; 
    NSDictionary *ImageDict = [EnclosureArray objectAtIndex:0]; // 0 Should be replaced with the index of your image dictionary. 
    NSString *ImageLink = [ImageDict objectForKey:@"url"]; 

    // Returns: http://www.yourdomain.com/image.jpg 
}