IOSDEV Telegram 1459
Зачем нужен init(coder:) для View Controllers?

Наверняка, если вы только недавно начали работать с UIKit или просто перешли к верстке кодом, то могли встретить ошибку

'required' initializer 'init(coder:)' must be provided by subclass of 'UIViewController'

Эта ошибка обычно возникает при создании контроллеров с помощью кода (а не с XIB или, если кто-то использует до сих пор, storyboard).

Так почему это происходит?

Класс UIViewController соответствует протоколу NSCoding.

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

На примере Storyboard: в рантайме UIStoryboard создает контроллер программно, кодируя его как раз с помощью протокола NSCoding.

Storyboard передает архив данных контроллера в метод init(coder:), который затем и использует эти данные для воссоздания состояния контроллера.

📖 Понятный и несложный разбор доступен в этой статье.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3311👏82❤‍🔥1🔥1🙏1💯1🎅1🎄1



tgoop.com/iosdev/1459
Create:
Last Update:

Зачем нужен init(coder:) для View Controllers?

Наверняка, если вы только недавно начали работать с UIKit или просто перешли к верстке кодом, то могли встретить ошибку

'required' initializer 'init(coder:)' must be provided by subclass of 'UIViewController'

Эта ошибка обычно возникает при создании контроллеров с помощью кода (а не с XIB или, если кто-то использует до сих пор, storyboard).

Так почему это происходит?

Класс UIViewController соответствует протоколу NSCoding.

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

На примере Storyboard: в рантайме UIStoryboard создает контроллер программно, кодируя его как раз с помощью протокола NSCoding.

Storyboard передает архив данных контроллера в метод init(coder:), который затем и использует эти данные для воссоздания состояния контроллера.

📖 Понятный и несложный разбор доступен в этой статье.

😃 iOS Dev

BY iOS Dev




Share with your friend now:
tgoop.com/iosdev/1459

View MORE
Open in Telegram


Telegram News

Date: |

The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar. Ng Man-ho, a 27-year-old computer technician, was convicted last month of seven counts of incitement charges after he made use of the 100,000-member Chinese-language channel that he runs and manages to post "seditious messages," which had been shut down since August 2020. Among the requests, the Brazilian electoral Court wanted to know if they could obtain data on the origins of malicious content posted on the platform. According to the TSE, this would enable the authorities to track false content and identify the user responsible for publishing it in the first place. The public channel had more than 109,000 subscribers, Judge Hui said. Ng had the power to remove or amend the messages in the channel, but he “allowed them to exist.” The initiatives announced by Perekopsky include monitoring the content in groups. According to the executive, posts identified as lacking context or as containing false information will be flagged as a potential source of disinformation. The content is then forwarded to Telegram's fact-checking channels for analysis and subsequent publication of verified information.
from us


Telegram iOS Dev
FROM American