проблема разрешения изображения iOS - PullRequest
1 голос
/ 20 февраля 2012

В моем проекте я использую изображение, которое загружает изображение с сервера. На iOS 4 работает нормально, но на iOS 5 не отображается.

Существует ли минимальное разрешение, которое необходимо соблюдать при использовании iOS 5. Одно изображение, полученное с сервера, имеет разрешение 72 dpi, которое работает на iOS 4, но не на iOS 5.

Я написал категорию для просмотра изображения, которая будет загружать код с URL изображения Вот фрагмент кода:

- (void) setImageFromServer:(NSString *) imageURL 
{
    if (imageURL!=nil) 
    {
        ImageDownloader *imageDownloader = [[[ImageDownloader alloc] init] autorelease];
        imageDownloader.requester = self;
        [imageDownloader startDownload:imageURL]; 
    }
}


- (void) didDownloadImageData:(NSData *) data forImageURL:(NSString *) imageURL 
{
    [self setImage:[UIImage imageWithData:data]];
}

В файле загрузчика:

- (void) startDownload:(NSString *)MyimageURL {

    self.imageData = [NSMutableData data];
    self.currentImageURL = MyimageURL;

    self.downloadConnection = [NSURLConnection connectionWithRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:self.currentImageURL]]
                                                            delegate: self];
    [self.downloadConnection start];
}



- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [imageData appendData:data];
}

- (void) connectionDidFinishLoading:(NSURLConnection *)connection {
    [self.requester didDownloadImageData:self.imageData forImageURL:self.currentImageURL];
    isRewardTagImageAvailable = YES;
    [connection release];
    connection = nil;
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{

}

Ответы [ 2 ]

0 голосов
/ 20 февраля 2012

Является ли ваше соединение синхронным или асинхронным?

Если асинхронно, вы не должны автоматически выпускать ваш ImageDownloader, потому что есть некоторый шанс, что он будет выпущен для сообщения connectionDidFinishLoading.

Попробуйте выделить ваш ImageDownloader обычным образом, затем отпустите его, когда он завершит загрузку (как в connectionDidFinishLoading , так и didFailWithError )

0 голосов
/ 20 февраля 2012

Я не уверен, что это проблема, но обычно, когда я пишу NSURLRequest, я сначала инициализирую вещи следующим образом и вставляю запрос в NSURLConnection.Вроде как это.Также обратите внимание, что, как только вы установили initWithRequst в NSURLConnection, вам не нужно указывать, что соединение должно запускаться, оно будет автоматически.

NSURLRequest *tempReq = [[NSURLRequest alloc] initWithURL:someURL cachePolicy:NSURLRequestReloadIgnoringCacheData  timeoutInterval:10.0];
NSURLConnection *tempCon = [[NSURLConnection alloc] initWithRequest:tempReq delegate:self];

Я имею в виду, что это не имеет значения, но попробуйте, потому что, глядя на ваш код, он выглядит хорошо.

Я бы порекомендовал добавить метод didFailWithError:

-(void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;

К вашим файлам, а также потому, что, возможно, по какой-то причине ваше соединение не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...