2016-11-19 3 views
0

Учитывая, что я использую PFImageViews, с включенным кэшированием, я хотел бы знать, есть ли способ определить, было ли изображение уже загружено или нет.Swift - Parse Проверьте, сохранен ли PFFile

В общем, я хочу сказать:

if imageAlreadyDownloaded { 
    ... 
} 
else { 
    ... 
} 

Возможно ли это?

+0

Если вы планируете использовать его, ознакомьтесь, прежде чем приступать к его реализации. выключение к 28 января 2017. http://blog.parse.com/announcements/moving-on/ .. – andyPaul

+0

@andyPaul Спасибо, но я знал это ... Я забыл упомянуть, у меня есть свой собственный Parse Server. .;) –

ответ

0

Я думаю, вам придется свернуть свое собственное решение с помощью PFImageView и метода loadInBackground, который имеет обработчик завершения.

Что-то вроде:

// Instance property on your UIViewController 
private var imageAlreadyDownloaded = false 

// Somewhere else in your UIViewController... 
imageView.loadInBackground() { 
    [unowned self] (image, error) in 

    guard error == nil else { 
     return 
    } 
    self.imageAlreadyDownloaded = true 
} 
+0

В этом случае, я думаю, что изображение будет загружено в обоих случаях, что я хочу предотвратить. Правильно? –

+0

Мое намерение состояло в том, что этот код будет вызываться один раз, когда вы начнете загрузку. Я не хотел, чтобы 'loadInTheBackground' вызывался дважды. Тем не менее, похоже, вы нашли другое хорошее решение. –

0

Итак, я, наконец, нашел решение моей проблемы! Каждый PFFile имеет логическое свойство, называемое «isDataAvailable».

С небольшим количеством кода мы можем иметь следующие решения:

let imageFile = file as? PFFile 

if imageFile.isDataAvailable { 
    ... 
} 
else { 
    ... 
} 

И сделали! ;-)

Смежные вопросы