내 앱의 네트워킹 코드를 중앙 집중화하려고합니다. 기본적으로 서버의 정보가 필요한 다양한 장소에서 정보를 얻기 위해 ServerRequest 클래스의 객체 serverRequest를 만듭니다. ServerRequest가 완료되면 정보를 호출 객체로 다시 보내야합니다. 물론 비동기 적으로 작동해야합니다. 대기하는 동안 내 앱이 중단되기를 원하지 않습니다.내 목표 C 앱의 네트워킹 코드를 중앙 집중화
이 정보의 반환은 까다로운 부분입니다. 내 옵션이 위임 및 통지 인 것 같습니다. 내가 말할 수있는 한, 그들은 모두 이슈를 가지고있다.
위임 : 나는 serverRequest 객체에 대한 위임자로서 자신을 전달한다. 문제는 요청이 완료되기 전에 할당을 취소하면 serverRequest가 할당 취소 된 객체를 메시징하고 프로그램이 중단된다는 것입니다. 이것을 방지하기 위해, 나는 내 서버 요청 (둘 이상있을 수 있음)을 모두 추적해야하고 내 dealloc 메소드에서 모두 알려서 더 이상의 메시지를 얻지 못하게해야합니다. 이 모든 것이 가능하지만 분명 고통스러운 것처럼 보입니다.
알림 : 정보를 전달하는 데 많은 작업이 필요합니다. 나는 자신을 통지 센터에 옵서버로 추가해야하고 할당을 취소 할 때 자신을 제거해야합니다. 또한 ServerRequest에 게시 할 알림 종류에 대한 정보를 전달해야합니다. 그리고 ServerRequest는 수신 된 데이터를 NSDictionary로 밀어 넣어야합니다. 그러면 NSDictionary가 전달 된 후 다시 가져옵니다.
두 가지 방법 모두 작동해야하지만 둘 다 ServerRequest가 호출 코드를 깨우고 객체를 전달하는 데 막대한 노력이 필요합니다. 알림이 좀 더 유연하고 통증이 적으며 사고를 일으킬 가능성은 적지 만 두 방법 모두에 만족스럽지 않다고 생각합니다. 모든 의견을 주시면 감사하겠습니다. 감사.