2014-04-16 2 views

답변

2

키 경로입니다. 변수 이름 일 필요는 없습니다. 대신 속성 목록입니다. 이 경우 목록에는 하나의 항목 만 있지만 다른 경우에는 @"account.balance.inDollars"과 같을 수 있습니다. 체인의 각 요소는 해당 속성을 이름별로 조회합니다.

account.balance.inDollars 글자를 쓰지 않는 이유는 글쎄, 거기에 대입하면 어떻게 될지 생각해보십시오. 옵저버를 설정하고 속성의 현재 값을 전달하면 속성에 액세스합니다. 그건 우리가 원하는 것이 아닙니다. 대신 관찰 메커니즘에 속성 자체를 조회하여 변경 사항을 볼 수있는 방법을 알려주려는 경우 key-value coding을 사용합니다.

2

주목해야 할 것은 변수 이름 일 필요는 없습니다. 오히려 그것은 속성입니다 (그리고 그것을 뒷받침하는 변수 이름은 속성의 @synthesize에 따라 같은 이름이거나 다를 수 있습니다).

이렇게하면 관련없는 클래스가 정의 된 상황 (예 : 읽기 전용)에서 다른 클래스의 속성을 액세스 할 수 있습니다. 예를 들어 클래스의 다른 부분을 노출하지 않아도됩니다.

0

Swift에서는 #keyPath()을 사용하여 키 경로 문자열을 생성 할 수 있습니다. (인터페이스 작성기에서 그래픽으로 바인딩을 설정할 수 있습니다. 컴파일시

let keyPathString = #keyPath(BankAccount.accountBalance) 

() 내부 토큰이 유효한 키 경로로서 선택한다.

이것은 컴파일러가 오타 또는 리펙터로 인한 오류를 경고하므로 자신의 키 경로 문자열 리터럴을 작성하는 것보다 훨씬 낫습니다.