iOS 학습 기록 의 MVVM + RAC

2656 단어
최근 에 MVVM 을 배우 기 시 작 했 는데 이해 하기 쉬 운 것 같 지만 응용 하면 MVC 의 사고 모델 에서 벗 어 날 수 없다.
가장 간단 한 것 부터 시작 하 겠 습 니 다. 예 를 들 어 지금 우 리 는 이런 프로젝트 를 완성 해 야 합 니 다. 개발 한 APP (그 중의 세 개의 인터페이스 만 구축 하고 싶 습 니 다. 첫 페이지, 댓 글 페이지, 그리고 상세 한 화면, 그리고 하 나 는 로그 인 인터페이스 입 니 다) 가능 하 다 면 저 는 인 터 페 이 스 를 여러분 에 게 제공 하고 싶 습 니 다. 그러나 지적 재산권 만 을 위해 저 는 인 터 페 이 스 를 여러분 에 게 줄 수 없습니다. 하지만...저 는 여러분 이 직접 이 코드 를 두 드 려 서 우리 의 학습 을 실현 할 수 있 도록 JSON 의 데 이 터 를 드릴 수 있 습 니 다.
MVVM --- - 여기 서 나 는 먼저 당신 이 MVVM 에 대한 이 해 를 가지 고 있다 고 가정 합 니 다. 만약 에 MVVM 에 대해 잘 모 르 면 본 고의 맨 아래 연결 로 직접 뛰 어 내 려 서 일부 블 로그 나 글 로 MVVM 을 소개 할 수 있 습 니 다. 이 글 을 열심히 읽 은 후에 우 리 는 함께 우리 의 MVVM 공 부 를 시작 합 니 다.
SRModel.h
//
@property (nonatomic, copy)NSString *author;
//
@property (nonatomic, copy)NSString *category;
//
@property (nonatomic, copy)NSString *comment;
@property (nonatomic, copy)NSString *create_time;
@property (nonatomic, copy)NSString *excerpt;
@property (nonatomic, copy)NSString *good
@property (nonatomic, copy)NSString *thumbnail;
@property (nonatomic, copy)NSString *title;
@property (nonatomic, copy)NSString *view;

MVC 모드 에 따라 우 리 는 하나의 예 를 써 야 한다. 하나의 예 에 데이터 요청 방법 을 쓴 다음 에 table View Controller 에 값 을 부여 해 야 한다.
첫 번 째 문제: 첫 페이지 는 table View Controller 입 니 다. table View 에 cell (재 활용) 이 있 습 니 다. 어떻게 view Model 이 이 cell 에 데 이 터 를 제공 하고 cell 의 사건 을 감청 할 수 있 습 니까?나 는 인터넷 에서 다른 블 로 그 를 검색 해 보 았 지만 마음속 으로 적당 하 다 고 생각 하 는 답 을 찾 지 못 했다. 그래서 나 는 스스로 이해 할 수 밖 에 없 었 다. 나 는 SRViewModel 에 서브 ViewModel 을 설정 할 수 있다 고 생각한다. 예 를 들 어 SRCellViewModel 이 라 고 부 르 고 SRCellViewModel 로 cell 에 데 이 터 를 제공 하고 cell 의 상호작용 사건 을 관리 할 수 있다 고 생각한다.
여기 서 또 하나의 세부 적 인 문제 가 있 습 니 다. 바로 그림 보기 의 문제 입 니 다. UIImageView 는 UIImage 대상 (데이터) 이 필요 합 니 다. 그러나 UIImage 는 UIKit 프레임 워 크 를 기반 으로 합 니 다. 그러면 SRCellView Model 에서 UIKit 프레임 워 크 를 가 져 와 야 합 니까?UIImage 의 속성 을 추가 해서 UIImageView 보기에 값 을 부여 할 까요?나 는 인터넷 의 다른 블 로그 에서 어떤 사람 이 이렇게 할 수 있다 고 말 하 는 것 을 보 았 다. 어떤 사람 도 이렇게 하지 않 는 것 이 좋 겠 다 고 말 했다. 나 는 진지 하 게 생각 했다. MVVM 의 디자인 사상 을 바탕 으로 VM 이 담당 하 는 보기 의 표현 논 리 는 View 에 데 이 터 를 제공 하고 View 와 깊 은 상호작용 을 하여 VC 의 부담 을 줄 이 는 동시에 테스트 와 코드 의 재 활용 을 고려 하 는 데 유리 하 다. 그래서UIKit 프레임 워 크 를 ViewModel 에 가 져 오지 않 는 것 이 좋 을 것 같 습 니 다. 즉, ViewModel 의 속성 을 설정 하지 않 고 UIImage 의 대상 이 있 는 것 입 니 다.
다음 과 같은 방법 을 사용 하 는 것 을 권장 합 니 다.
SRCellView.m -- bindViewModel
[self.avatarImageView sd_setImageWithURL:viewModel.avatarURL];

마지막 으로 학습 MVVM 과 관련 된 연결 을 첨부 합 니 다.
http://yulingtianxia.com/blog/2015/05/21/ReactiveCocoa-and-MVVM-an-Introduction/
여러분 이 이 연결 을 다 본 후에 우 리 는 우리 의 공 부 를 계속 하 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기