1. Delegate 패턴을 사용하면서 Protocol을 만들 때 왜 Protocol을 AnyObject로 타입을 선언하여야 할까요?

Protocol 생성시 AnyObject 상속받기

인스턴스화 하여 참조할 때 Retain이 생긴다. 왜 프로토콜이 클래스나 구조체가 아닌데 Retain Cycle이 생길까요?