Ответ 1
Блоки похожи на другие объекты для управления памятью, но не то же самое. Когда создается блок, который обращается к локальным переменным, он создается в стеке. Это означает, что он действителен только до тех пор, пока существует его область действия. Чтобы сохранить этот блок позже, вы должны copy
его, который копирует его в кучу. Поэтому, чтобы защитить от проблем с такими блоками, вы должны скопировать, а не сохранить свой блок, прежде чем хранить его в переменной экземпляра.