[iOS] CoreData singleton sample

[iOS] CoreData singleton sample

도움 받은 곳 : http://natashatherobot.com/ios-core-data-singleton-example/

 

db가 필요한 예제 만들다가 sqlite 클래스 만들기 귀찮아서 이 참에 core data를 써봐야겠다 싶어서 이 예제를 만들었다.

 

 

 

 

일단 이렇게 하면 어느 정도 필요한 건 다 된 것 같다.

그냥 sqlite 랑 비슷하다고만 생각했는데, 개념이 많이 달라서 고생 좀 했다 ㅠㅠ

보통의 db는 select하고, insert하는 걸 바로바로 해줘야하는데, 얘는 그런거 없이 배열 정보로 갖고 있다가 한방에 저장시켜 버린다.

그래서 core data 예제를 만들면 앱이 꺼질 때 딱 한 번 save를 한다….

이거 때문에 아주 많이 헤맸다.

 

근데 이거 테이블 많아지면서, 관계설정 들어가기 시작하면 감당 안되지 싶은데 ;;;;;

 

 

 

select 는 이렇게 하면 된다.

where 절에 해당하는 predicate는  NSPredicate 로 검색하는게 나을 것 같다.

보통의 where와는 많이 달라서 테스트를 해보는게 좋을 듯…..

 

 

fetchedResultsController에서 NSManagerObject를 가져오고, 그거의 특정 key에 해당하는 value를 바꿔주면 된다.

NSDictionary와 사용법은 같다고 생각하면 이해하기 편하다.

 

 

Event 모델의 name에 값을 넣어서 배열에 저장하는 부분이다.

보통의 db였다면 이 부분에서 insert 쿼리가 실행됐을 테지만, core data는 그런거 없다.

 

 

실제로는 이런 식으로 save를 날려줘야 저장된다.

이러면 fetchedResults 에 변경된 놈, 추가된 놈, 수정된 놈들의 쿼리가 날아간다.

특히 이 부분 때문에 이해하기 정말 힘들었다.

 

 

전체 소스는 https://github.com/susemi99/TestCoreData 에 올려뒀다.