Xcode: невозможно создать делегированный выход

Это приложение Objective-C, и я работаю с Xcode 14. Я пытаюсь перенести устаревший UIWebView на WKWebView, и я уже заменил все ссылки UIWebView в коде на WKWebView, но я застрял в части раскадровки ( имейте в виду, что я новичок в разработке iOS).

Я пытаюсь добавить WKWebView в SB, затем реплицировать все свойства текущего UIWebView и, наконец, удалить UIWebView.

На следующем снимке экрана вы увидите в правой панели раскадровки, что текущий UIWebView имеет выход делегата:

Но я не знаю, как воспроизвести этот выход делегата в WKWebView, который ниже. Я должен сказать, что не знаю точно, что такое делегат в этом контексте, но я просто пытаюсь воспроизвести свойства текущего WebView.

Как создать точку делегирования для WKWebView?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете дать вашему WKWebView выходное соединение для розетки, которая у него есть на самом деле. WKWebView не имеет свойства делегата. Поэтому у него нет делегатского выхода.

Я пытаюсь добавить WKWebView в SB, затем реплицировать все свойства текущего UIWebView и, наконец, удалить UIWebView.

Ну, перестань пытаться это сделать. WKWebView сильно отличается от UIWebView. Вы не должны пытаться «реплицировать» что-либо в UIWebView с помощью WKWebView. Используйте WKWebView как WKWebView.

Во-первых, все ваши взаимодействия кода с этим представлением должны быть полностью переписаны. Вы не можете просто вставить WKWebView вместо UIWebView, как если бы это были просто два имени для одного и того же.

Отличное объяснение @matt. Я последую вашему предложению и проверю UIWebView с помощью UIWebView.

Diego Perez 27.11.2022 00:22

Я снял пометку с вопроса как правильный @matt, потому что он частично правильный. Я продолжал исследовать, и у WKWebView DO есть делегаты. Наиболее распространенным является WKNavigationDelegate (developer.apple.com/documentation/webkit/… ). Но я не знаю, как связать его с WKWebView в раскадровке, и я не могу запустить didFinishNavigation. Может быть, вы можете помочь мне в моем другом вопросе: stackoverflow.com/questions/74586720/…

Diego Perez 27.11.2022 14:54

Я не говорил, что у него нет делегатов. У него два делегата. Но ни один из них не называется delegate. Это то, что вы спросили, и то, что я ответил. Более того, я сказал вам рассматривать WKWebView как WKWebView, а не как замену UIWebView. Что было правильно, и на самом деле это то, что вы сделали. "Может быть, вы можете помочь мне в моем другом вопросе" Не после того, как вы лишили меня мотивации сделать это, нет.

matt 27.11.2022 14:55

Хорошо, извини @matt, я изменил правильный ответ, может быть, слишком быстро, но ожидал дополнительной помощи. Я думал, что если новые читатели увидят, что вопрос помечен как правильный, они не смогут ничего опубликовать. Учитывая ваши объяснения, и даже если вы продолжаете мне помогать или нет, я верну это снова. Извините, может быть, это была ошибка, но мое единственное намерение состояло в том, чтобы получить дополнительную помощь.

Diego Perez 27.11.2022 15:04

Просто посмотрите на вопрос, который вы задали. Вы хотели «реплицировать все свойства текущего UIWebView». Я говорил тебе, что ты не можешь этого сделать и не должен пытаться. И я был прав, и вы последовали моему совету и извлекли из него пользу, таким образом достигнув следующей стадии, на которой вы сейчас находитесь. "но мое единственное намерение состояло в том, чтобы получить больше помощи" Действительно. Вот что делает задавание другого вопроса. Тот факт, что теперь у вас есть еще один вопрос, не делает мой ответ на ваш первый вопрос неверным.

matt 27.11.2022 15:09

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

Diego Perez 27.11.2022 15:17

Это становится очень личным и, как мне кажется, основано на непонимании того, что такое переполнение стека.

matt 27.11.2022 15:51

Другие вопросы по теме