Хобрук: Ваш путь к мастерству в программировании

Поделиться изображением из коллекцииПросмотр в Facebook - сбой необязательного значения

У меня произошел сбой, если я хочу поделиться img из collectionView в Facebook вот так. Я использую Facebook SDK для быстрой работы через CocoaPods. Если я правильно понимаю, то это URL моего изображения NIL. Но с другой стороны, если я нажму на «myImage», img будет загружен. Хммм, что не так?

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

import FacebookLogin
import FacebookShare



func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let cell = collectionView.cellForItem(at: indexPath)
        cell?.layer.borderColor = UIColor.purple.cgColor
        cell?.layer.borderWidth = 2

        let imageCell = collectionView.cellForItem(at: indexPath) as! imageCellCollectionViewCell
        //        let imageCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! imageCellCollectionViewCell
        guard let myImage = imageCell.imageToShare.image else {
            print("leer")
            return
        }

        let photo = Photo(image: myImage, userGenerated: true)
        let content = PhotoShareContent(photos: [photo])
        do {
            try ShareDialog.show(from: myController, content: content)
        } catch {
            print(error)
        }
    }

  • Ваш myImage не равен нулю, его myController или переменная содержимого. Попробуй его распечатать, увидишь. 02.06.2018

Ответы:


1

Вам нужно проверить свой myController объект. Может быть, это ноль:

if let vc = myController {
        do {
            try ShareDialog.show(from: vc, content: content)
        } catch {
            print(error)
        }
}

Если метод делегата представления коллекции реализован в вашем MyViewController, вы можете напрямую использовать Self Примерно так:

do {
   try ShareDialog.show(from: Self, content: content)
 } catch {
   print(error)
 }
02.06.2018
  • Ого, это правда .... но почему ноль? Я делаю это так: var myController: MyViewController! 02.06.2018
  • @webschnecke: можешь показать мне свой код для myController? 02.06.2018
  • ! в var myController : MyViewController! означает, что вы гарантируете, что myController будет иметь значение к моменту завершения инициализации этого объекта. На самом деле он не инициализирует значение для вас - это ваше дело. Если вы этого не сделаете, это будет ноль. 02.06.2018
  • @JaredH: Да, именно так 02.06.2018
  • @JogendarChoudhary класс MyViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UICollectionViewDelegate, UICollectionViewDataSource { 02.06.2018
  • @webschnecke: вам нужно пройти Self 02.06.2018
  • @webschnecke: Я обновил свой ответ, пожалуйста, проверьте 02.06.2018

  • 2

    Это ответ ;-) ЧЕРТ ... я, а не vc. Кто-нибудь может мне это объяснить? В чем разница?

    do {
                try ShareDialog.show(from: self, content: content)
            } catch {
                print(error)
            }
    
    02.06.2018
    Новые материалы

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..

    React Hooks: основы деструктуризации массива
    Kent C. Dodds написал классный пост о том, как грядущая функция React под названием Hooks работает на капоте. Предстоящий хук React useState основан на деструктурировании массива, давайте..

    Пакеты R, используемые в Tesla
    Добро пожаловать обратно! R — очень популярный язык программирования, используемый множеством компаний, включая Tesla! Итак, давайте взглянем на некоторые пакеты R, которые использует Tesla...

    Сокращение и слияние токенов для эффективных моделей VL: обзор
    Часто в задачах, связанных с компьютерным зрением и НЛП, вычислительно затратная и требующая большого объема памяти обработка становится препятствием для более быстрого логического вывода модели, а..