2012-07-07 3 views
27

은 선택할 수있는 여러 종류가 있습니다에서 :콘센트 연결과 동작 연결의 차이점은 무엇입니까? 내가 XIB 및 파일의 소유자 사이의 연결을 만들려고 할 때

  • 콘센트에 연결
  • 액션 연결
  • 출구 수집 연결

무엇 그것들 모두의 차이점은 무엇입니까?

+1

콘센트가 당신의 ViewController 예컨대 데이터를 제공합니다. View to you Controller에서 조치가보고됩니다. 예를 들어 버튼을 클릭 한 경우. (TouchUpInside 이벤트) – lukaskrieger

답변

0

콘센트 연결이 다음 XIB, 현재 파일 소유자 인스턴스를 형성, 속성 또는 인스턴스 변수를 연결하는 것입니다이 XIB는 파일 소유자 개체

출구 행동 할 것이다 연결을 직렬화 복원 될 때입니다 소유자 클래스에 XIB에서 지정된 출구 (뷰) 타겟/액션을 추가

출구 컬렉션 : 출구 유사하지만, 하나의 출구 VAR

2

출구 조회수의 어레이 연결 클래스 (일반적으로보기 컨트롤러)에 xib의 하위 뷰에 대한 참조를 제공합니다. 액션은 사용자가 활성화했을 때 컨트롤 (일반적으로 xib의 하위 뷰)에 의해 호출 될 메서드를 제공합니다.

즉, 콘센트는 obj-c 코드에 IB의 객체에 대한 액세스 권한을 부여합니다. 액션은 obj-c 코드에 대한 xib 컨트롤 액세스를 제공합니다.

+0

'반대 방향의 다리'를 제공한다고 말할 수 있습니다. –

35

아웃렛 및 액션은 ViewController가 뷰와 상호 작용하는 방식 (또는 연결/중개)입니다. 둘은 아이폰 OS 지인의 초기 일 동안 유사한 보일 수 있지만 서로 다른 목적을 제공하지만 :

아울렛 : ViewController talks to View by using Outlet합니다. View의 모든 객체 (UILabel, UIButton, UIImage, UIView 등)는 ViewController에 대한 Outlet 연결을 가질 수 있습니다. Outlet은 을 의미하는 ViewController에서 @property으로 사용됩니다. 콘센트를 사용하여 객체의 UILabel 업데이트 텍스트, UIView의 배경 이미지 설정 등을 설정할 수 있습니다.
- 당신은 (UIStepper의 현재 값, NSAttributedString은 등의 현재 글꼴 크기 등) 대상에서 무언가를 얻을 수

액션 : View pass on messages about view to ViewController by using Action (또는 기술적 측면에서보기에 어떤 Action에 대한 Target로 자신을 설정의 ViewController). 동작은 ViewController에서 Method입니다 (ViewController에서는 Outlet과 달리 @property 임). 뭔가 (Event) 객체 (UIbutton을 두드리는 것과 같은)가 발생할 때마다 액션은 ViewController에 메시지를 전달합니다. 액션 (또는 액션 메소드)은 메시지를받은 후에 무언가를 할 수 있습니다.
참고 : 작업은 UIControl의 하위 개체에서만 설정할 수 있습니다. 당신이 UILabel의, UIView의 등을위한 작업을 설정할 수 없습니다 의미

경우 \ 콘센트 나 액션 사용하는 경우 : 아이폰 OS 지인의 초기 일 동안
을 자사의 액션과 아웃렛과 용도 사이의 혼동 완벽하게 정상. 아울렛과 액션 모두에서 수행 할 수있는 작은 것들 (버튼의 텍스트/제목 얻기와 같은)은 많지 않습니다. 그렇지 않으면 매우 다릅니다. 하나 또는 다른 것을 사용하면서 포인트 이상을 명심하십시오.

+1

그래서 아울렛은보기 및보기 컨트롤러간에 공유되는 속성이고 동작은보기에서보기 컨트롤러로 메시지를 보냅니다. – rbp

+1

Property는 2 개의 액세서 메소드 (getter 및 setter 메소드)의 외장 일 뿐이며 outlet은 View와의 연결을 설정하고 값을 가져 오므로 콘센트를 속성으로 잘못 입력하지 않습니다. 참고 : IBOutlet은 Xcode가 Xcode에 알려주는 내용으로,이 경고는 단지 임의의 @ 속성이 아니라 콘센트 (보기에 대한 연결)입니다. 컴파일러는 무시합니다. –

7

콘센트 콘센트의 컨트롤 속성, 즉 텍스트 색상이나 텍스트 크기를 변경하려는 경우 사용합니다.

while 조치는 트리거를 감지하고자 할 때, 즉 버튼을 눌렀을 때 사용됩니다.

1

Outlet & Action visualisation

아울렛과 액션 연결는 UIViewController에이 UView와 통신 할 수있는 직접적인 방법입니다. 예를 들어,보기 컨트롤러가 UILabel의 텍스트를 설정해야하는 경우 콘센트 연결을 통해 그렇게 할 수 있습니다. 뷰의 UIButton 객체를 두드리면 액션 연결을 사용하여 뷰 컨트롤러에 메시지를 전달합니다. 즉, View Controller에서 생성 된 콘센트가 @property로 선언되고 메서드를 선언하여 동작이 만들어집니다.

콘센트 연결은 코드에서 Xcode의 스토리 보드에있는 사용자 인터페이스 개체로 메시지를 보내야 할 때 만들어집니다. 객체는 버튼, 슬라이더 및 스위치와 같은 컨트롤 일 수도 있고 스토리 보드에 레이블이나 진행률 막대와 같이 정의 된 다른 객체 일 수도 있습니다. 예를 들어, 코드에서 레이블에 일부 텍스트가 표시되어야한다고 결정하면 코드는 새 텍스트를 표시하도록 레이블에 지시하는 메시지를 콘센트를 통해 보냅니다.

동작 연결은 스토리 보드의 컨트롤에서 메시지로 메시지를 보내야 할 때 만들어집니다. 컨트롤은 사용자가 개체를 조작 할 때 동작 또는 보이는 결과를 발생시키는 사용자 인터페이스 개체입니다. 예를 들어, 사용자가 버튼을 탭하면 버튼은 코드에 적절한 메소드를 실행하라는 작업 메시지를 보냅니다. 작업 연결을 만드는 데 사용할 수있는 컨트롤의 다른 예는 텍스트 필드, 슬라이더 및 스위치입니다.

참고 : 당신이 레이블 텍스트를 설정하면 1. https://medium.com/@GanChau/outlet-vs-action-connections-in-xcode-b5331fb233a1

관련 문제