Недавно я встретил документ Apple, в котором показано следующее объявление свойства для блока:
@interface XYZObject : NSObject
@property (copy) void (^blockProperty)(void);
@end
Кроме того, в этой статье говорится:
Примечание. Вы должны указать копию как атрибут свойства, поскольку блок необходимо скопировать, чтобы отслеживать захваченное состояние вне исходной области. Это не то, о чем вам нужно беспокоиться при использовании автоматического подсчета ссылок, поскольку это произойдет автоматически, но его лучшая практика для атрибута свойства показать результирующее поведение. Дополнительные сведения см. В разделе "Темы программирования блоков".
Я также читал предлагаемые разделы программирования блоков, но не нашел там ничего подходящего.
Мне все еще интересно узнать, почему определение свойства блока как "копия" - лучшая практика. Если у вас есть хороший ответ, попробуйте различать различия между ARC и MRC, если они есть.
Спасибо