2017-02-22 6 views
0

나는 사용하기 쉽고, 사용하기 쉽고, 인라인 코딩에 도움이되는 블록을 연구했으며, 다음 두 점을 명확하게 이해할 수 없다.블럭 대 델리게이트의 메소드

1) 블록이 메서드 및 대리자와 다른 점은 무엇입니까?

2) 메서드 및 대리자를 통한 블록 사용의 이점. 대리자 및 메서드보다 유용한 블록은 어디에 있습니까?

개념을 더 잘 이해하고 이해하도록 도와주세요. 미리 감사드립니다.

답변

0

당신이 물어 같이 보이는 호기심 질문 :

1) 블록 방법과 대표는 다른 방법?

2) 메서드 및 대리자를 통한 블록 사용의 이점. 대리자 및 메서드보다 유용한 블록은 어디에 있습니까?

후에는 썼다 :

사용하기 쉽고, 인라인 코딩에 도움이와 나는 어쩌면 오해하지만 여기, 후 무엇을,

에 관계없이 한 곳에서 일을 유지 유용한 정보가있을 경우 고려해야 할 사항이 있습니다.

  • 인스턴스 메서드 및 대리자는 모두 개체의 인스턴스와 연결되어 있습니다. 따라서 인스턴스 변수, 속성 및 기타 메서드를 모두 참조하고 사용할 수있는 self이 있습니다. 둘 다 동행 한 상태에 온다.
  • 함수와 마찬가지로 블록은 개체의 인스턴스와 연결되지 않습니다.
  • 그러나 블록은 정의 된 메서드/함수에서 값과 변수 (__block으로 주석 된 변수)를 캡처 할 수 있다는 점에서 함수와 다릅니다. 그래서 그들은 어떤 상태를 가지고 있습니다.
  • 다른 것들에 비해 하나의 이점에 관해서는, 시나리오에 적합한 하나를 고르는 것이 정말로 좋습니다. 아무도 "더 나은"것은 없습니다. 필요한 것을 결정하십시오. 객체 (메서드)에 동작 추가, 인스턴스/메서드 쌍을 전달하여 일부 기능 (대리자) 제공, 로컬 범위 (블록)에있는 값을 기반으로 한 기능 제공 등. 적절한 구조를 사용하십시오.

HTH