저는 KVC와 Cocoa Scripting에 대해 읽었으며, 어떻게 속성을 사용할 수 있습니까? 모델 클래스를 염두에두고 있지만 요소/속성 데이터는 인터넷에서 가져와야합니다. 그러나 네트워크 호출이 느리고 오류가 발생하기 쉬운 반면 속성 및 KVC 디자인은 빠른 메모리 검색 (&)을 가정 한 것처럼 보입니다. 어떻게 화해시킬 수 있습니까?KVC는 속도와 오류를 어떻게 처리합니까?
속도면에서 우리는 "나사 조이기"라고 말하고 대기 아이콘을 게시합니까? (물론 우리는 기다리는 동안 UI가 멈추지 않도록 멀티 스레드를 유지해야합니다.)
속성이 항상 사용 가능하다고 가정되는 경우 리소스 호출에 오류가 발생하면 nil
으로 설정할 수 있습니다 . 그러나 우리는 세부 사항을 얻을 방법이 없을 것입니다. 더 나쁜 것은 "누락 된 값"을 지원하는 속성 일 것이고 nil
은이를 나타낼 것이며 우리는 오류에 사용할 예비 상태가 없을 것입니다.
Apple 이벤트는 오류 처리를 지원하지만 잠재적으로 오류를 발생시키는 모델 호출과 Apple 이벤트 사이에서 KVC 레이어가 오류를 바닥에 떨어 뜨리기 때문에 사용할 수 없습니다. 디자이너는 오류 처리를위한 비밀 프로토콜을 추가했기 때문에 Scripting Bridge API에이 문제가 발생했습니다.
내가 틀렸어? KVC 기반 설계에서 오류를 처리 할 수있는 방법이 있습니까?
부록
나는 예외를 언급하는 것을 잊었다. Objective-C는 이제 그것들을 지원하지만, 나는 그것에 대해 읽은 조금이라도 C++에서와 같이 일반적인 에러 핸들링이 아니라 "똑바로 부서지는 대신에"파국적 인 용도로 사용된다는 것을 의미합니다. 그것을 제외하고, 그들은 여기에서 유용 할 수 있었다. ...
당신이 무엇을 요구하고 있는지 명확하지 않습니다. KVC와 네트워킹의 관계는 무엇입니까? – Dima
KVC는 객체에 대한 메소드를 호출하는 방법 일뿐입니다. 모델 객체에만 국한된 것이 아니므로 어디에서나 동일한 방법으로 오류와 네트워킹을 처리 할 수 있습니다. KVO는 재미있는 키프 (keypath) 등으로 구성됩니다. – stevesliva
특정 유형의 서명이있는 메소드입니다. – stevesliva