为什么字符和正斜杠会附加到我的NSURL?

时间:2013-08-28 02:32:39

标签: ios cocoa nsurl

我的图片未从其网址加载。当我记录NSURL时,它看起来是正确的

  

my.website.com/images/image1.png

但是当我设置断点时,NSURL会在调试器控制台中显示为

  

my.website.com/images/image1.png\x05\b

我已经通过我的网络浏览器检查了json,它完全有效。该字符串以' g'结尾。 " png"。

我正在使用SDWebImage为我的表格单元格异步加载图像。用于图片的URL来自编码JSON的php文件。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    SpotsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SpotCell" forIndexPath:indexPath];

    NSInteger row = indexPath.row;

    if (self.spotDictionary)
    {
        NSDictionary* spot = (NSDictionary*)[self.spotDictionary objectForKey:[NSString stringWithFormat:@"%d", row]];
        NSString* title = [spot objectForKey:@"Title"];
        NSURL* imageURL = [NSURL URLWithString:(NSString*)[spot objectForKey:@"Image"]]; NSLog(@"%@", imageURL);
        UIImage* placeholder = [UIImage imageNamed:@"placeholder.png"];

        // See ~*~ below
        NSURL* testURL = [NSURL URLWithString:@"http://www.hdwallpaperspot.com/wp-content/uploads/2013/08/Volvo-station-wagon-612pb.jpg"];

        cell.nameLabel.text = title;

        [cell.pictureView setImageWithURL:imageURL
                         placeholderImage:placeholder]; // SDWebImage category for UIImage

//breakpoint here
    }

    return cell;
}

〜*〜 为了确保SDWebImage正常运行,我从网上抓取了一张图像以暂时测试该库,并且它表现非常出色。我检查了"Image"对象的类,它是_NSCFString。如果我对NSCFString和NSString之间的可互换性的理解存在缺陷,则会添加(NSString*)强制转换。没运气。

1 个答案:

答案 0 :(得分:0)

这非常令人尴尬,但我会分享我的错误,所以没有人会被误解。

我忘了在我的Image JSON对象中指定协议(http://)。 我认为NSURL类会有某种默认的HTTP检查,但我意识到这是不可行的,因为还有其他协议可以与NSURL一起使用。

感谢@rmaddy指出调试器,嗯,bug。