2015-01-10 6 views
0

사용자가 할 일 목록과 비슷한 항목에서 항목을 편집 할 수있는 OS X 응용 프로그램을 만들고 싶습니다. 각 항목에는 텍스트, 상태 (완료/완료), 생성 날짜 및 기타 데이터가 있습니다. 할 일 목록의 항목은 다른 항목과도 ​​관계가 있습니다.관계형 데이터/할 일 목록 용 NSDocument?

핵심 데이터 데이터 모델을 사용하는 iOS 앱을 만들었습니다 ... 이제 OS X 앱을 만들고 동기화하고 싶습니다.

저는 OS X 개발을 처음 접했고 NSDocument를 처음 접했을 때이를 사용할 수 있을지 궁금했습니다. 나는 단지 사용자가 엑셀 테이블과 비슷한 목록을보고 편집 할 수 있기를 원한다. 예를 들어 문자열 만 저장하는 몇 가지 예를 발견했습니다. https://developer.apple.com/library/mac/documentation/DataManagement/Conceptual/DocBasedAppProgrammingGuideForOSX/ManagingLifecycle/ManagingLifecycle.html 또는이 튜토리얼은 http://www.raywenderlich.com/12779/icloud-and-uidocument-beyond-the-basics-part-1

내가 시도 할 것입니다 무엇을 생각하는 핵심 데이터로 작업하는 것이 NSPersistentDocument있다.

일반적으로 말해서, 할 일 목록에 NSDocument를 사용하면 어떤 이점이 있습니까? 하나는 기능을 취소 할 수 있지만 이것이 적용 가능한지 확실하지 않습니다. 조언?

각각의 할일마다 하나의 문서를 사용하거나 하나의 문서에서 모든 문서를로드해야하는지 잘 모르겠다면, 그리고 테이블보기에서 제대로 작동하면 ... 아마 수긍할만한 앱에서 나는 결코 수백 가지를 얻지 못할 것입니다. 항목의, 그러나 나는 할 수 있었다. 페이지 매기기 등을 할 수 있습니까? 감사합니다.

편집 : 방금 Document-based application, or not?을 읽었습니다. 핵심 질문은 독립성 중 하나입니다. 응용 프로그램 모델의 모든 개체가 관련되어 있으면 독립적 인 문서를 관리 할 필요가 없습니다. " 이걸 내 모델에 적용하는 방법을 모르는 ... 관계형입니다. 1 : 1 및 1 : n 관계. 이것은 내 모든 물건이 관련 있다는 것을 의미합니까? 아니면 여전히 그들을 "독립적 인"문서로 취급 할 수 있습니까?

답변

1

앱에 할 일 목록이 하나만있는 경우 NSDocument를 사용하면 아무런 이점이 없습니다. Core Data를 사용하면 NSDocument를 사용할 필요없이 실행 취소 지원을받을 수 있습니다.

NSDocument를 사용하면 앱에서 사람들이 여러 할 일 목록을 만들고 각 목록을 고유 한 파일에 저장할 수있는 경우 도움이됩니다. NSDocument는 워드 프로세서 및 스프레드 시트와 같은 응용 프로그램을 위해 설계되었으며 사람들은 여러 문서를 만들고 한 번에 여러 문서를 열 수 있습니다. 이 응용 프로그램에 NSDocument를 사용하려면 각 할 일 목록은 고유 한 문서가됩니다.

UPDATE는

NSDocument의 주요 이점은 파일 메뉴를 포함한다. NSDocument를 사용할 때 [파일]> [새로 만들기]를 선택하면 새 문서가 만들어집니다. 파일> 열기를 선택하면 디스크에서 문서를로드 할 수있는 파일 열기 대화 상자가 열립니다. 새 문서를 저장할 때 파일> 저장을 선택하면 파일을 디스크에 파일로 저장하기위한 파일 저장 대화 상자가 열립니다.

NSDocument를 사용할지 여부를 결정할 때 다음 질문을 해보십시오. 사용자가 파일> 새로 만들기를 선택하여 새 할 일 목록을 만들겠습니까? 파일> 저장을 선택하여 할 일 목록을 별도의 파일로 저장 하시겠습니까? 파일> 열기를 선택하여 사용자가 할 일 목록을 열도록 하시겠습니까? 이 질문에 대한 답이 YES이면 NSDocument가 도움이 될 것입니다. 이 질문에 대한 대답이 아니오이면 NSDocument가 도움이되지 않습니다. 또한 NSDocument는 목록에있는 개별 할일을 참조하는 "다른 문서"를 다룰 때 도움이되지 않습니다.

iOS 동기화에 관한 질문에 답변하려면 iOS 앱에서 UIManagedDocument를 사용하고 있습니까? 그렇다면 Mac 응용 프로그램에서 NSPersistentDocument를 사용하고 동일한 Core Data 모델을 공유 할 수 있습니다. 그렇지 않으면 NSPersistentDocument를 사용할 수 없습니다.iOS 및 Mac 응용 프로그램에서 동일한 코어 데이터 모델을 사용하려면 Mac 응용 프로그램에서 NSManagedObject를 사용해야합니다. NSPersistentDocument를 사용하지 않고 NSDocument와 Core Data를 함께 사용할 수는 있지만 함께 사용하는 방법을 알지 못합니다. 하지만 iOS 앱에서 UIManagedDocument를 사용하지 않는다면 Mac 앱에서 NSDocument를 사용해서는 안된다는 신호입니다.

+0

여러 개의 할 일 목록이 있습니다. 또한이 목록에 나타나는 개인의 할일을 참조하는 다른 "문서"도 있습니다. 사용자가 예를 들어 스프레드 시트와 비슷한 각 목록을 편집 할 수 있기를 바랍니다. 중요한 것은 iOS 앱과 동기화하고, 핵심 데이터 만 문서를 사용하며 정확히 동일한 (핵심) 데이터 모델을 사용하고자하므로 모든 데이터가 코어 데이터를 사용하여 저장되어야한다는 것입니다. 여전히 유익한 문서를 사용하고 있습니까? 지금까지 핵심 데이터를 스토리지로 사용하는 것이 가능하므로 적어도 가능합니다. – Ixx

+0

귀하의 의견에있는 답변에 대한 답변이 업데이트되었습니다. –

+0

유용한 정보가 많이 있습니다. 감사합니다 (+1)! 내 목록이 "문서"(열기/저장 등)라는 것을 사용자에게 명시하고 싶지 않기 때문에 필자는 그 필요가없는 것 같습니다. 사용자가 볼 수없는 내부 개념이라고 생각할 수 있습니다. 또한 iOS 앱과 관련된 문서는 추가하지 않았습니다. 그 당시에는 알지 못했기 때문에 ... 편리한 경우 추가하겠습니다. 하지만 UIManagedDocument는 문서 기능을 사용하지 않아도 코어 데이터 스택을 관리하는 데 편리하며 iCloud 와도 도움이됩니다. 나중에이를 지원할 것입니다. – Ixx