, предполагая, что любой файл, который может понадобиться js, должен быть разрешен непосредственно пользователем, создатели известных браузеров вообще не допускают файлы доступа к javascript.
Основная идея решения: javascript не может получить доступ к файлу, указав его локальный URL. но он может использовать файл, имея его DataURL: поэтому, если пользователь просматривает файл и открывает его, js должен получить «DataURL» непосредственно из HTML вместо получения «URL».
Затем он превращает DataURL в файл, используя функцию readAsDataURL и объект FileReader. источник и более полное руководство с хорошим примером:
Я думаю, что
return self.collectionView(collectionView, layout: UICollectionViewLayout(), sizeForItemAt: IndexPath(item: 0, section: 0))
будет рекурсивно вызывать один и тот же метод много раз, что приведет к сбою, вызванному циклом, плюс, если вы реализовали этот метод sizeForItemAt
, вам придется возвращать значение для других коллекций также, поскольку if
здесь if collectionView != interestsCollectionView
может никогда не совпадать с логикой компилятора, так что вы можете сделать
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
if collectionView == collectionView1 {
return CGSize(width:<#w#>,height:<#h#>)
}
else if collectionView == collectionView2 {
return CGSize(width:<#w#>,height:<#h#>)
}
else { } // etc
}