2013-08-28 1 views
0

Мои изображения не загружаются с их адрес. При входе в NSURL, оказывается правильнымПочему символы и косые черты присоединяются к моему NSURL?

my.website.com/images/image1.png

Но когда я установить контрольные точки, то NSURL отображается в консоли отладчика, как

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

Я проверил через JSON мой веб-браузер, и это вполне допустимо. Строка заканчивается символом «g» «png».

Я использую SDWebImage для асинхронной загрузки изображений для своих ячеек таблицы. URL-адреса, которые будут использоваться для изображений, поступают из файла php, который кодирует JSON.

- (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. Листинг (NSString*) был добавлен в случае, если мое понимание взаимозаменяемости между NSCFString и NSString ошибочно. Не повезло.

+3

Это проблема отладчика. Поиск, и вы обнаружите, что другие сообщают об этой проблеме. Введите 'po imageURL' в командной строке отладчика, и вы увидите ожидаемое значение. – rmaddy

+0

Да, ты прав. Но! Изображения по-прежнему не загружаются из 'imageURL'. Тем не менее они будут от «testURL». И URL-адрес полностью действителен, я могу скопировать его из консоли журнала и вставить его в Firefox, и он загружается. Поэтому я не могу не думать, что странные персонажи все еще делают вуду. – user

ответ

0

Это очень неловко, но я поделюсь своей ошибкой, поэтому никто не ошибается.

Я забыл указать протокол (http: //) в моем объекте JSON Image. Я понял, что класс NSURL будет иметь некоторую проверку HTTP по умолчанию, но я понимаю, что это невозможно, так как есть другие протоколы, которые можно использовать с NSURL.

Спасибо @rmaddy за указание отладчика, ммм, ошибка.