2012-10-10 3 views
0

핵심 데이터를 사용할 때 데이터베이스에 값을 삽입하거나 데이터베이스와 상호 작용하는 방법은 무엇입니까? 이 좋은 튜토리얼이 있나요? 핵심 데이터 튜토리얼을 살펴 보았지만 대다수의 파일은 로컬에서 수행되었습니다. 내 앞의 질문에서

UPDATE
누군가가 자동으로 나를 위해 데이터베이스 측면을하지 뜻이
"Core Data can use a database to accomplish this, but that's it's business, not yours. When you use Core Data, it is a black box. You tell it to save the data and then step out of the way."
합니까 대답?iOS : 핵심 데이터를 사용하여 데이터베이스에 삽입

감사합니다.

답변

0

코어 데이터는 db 관리자가 아니며 단순히 db와 상호 작용하는 것 이상을 수행합니다. 적어도 Core Data는 ORM으로 간주해야합니다. 아마도 코어 데이터를 이해하는 가장 좋은 방법은 그래프 관리자라고 생각하는 것입니다. 컨텍스트 (NSManagedObjectContext)를 통해 핵심 데이터와 상호 작용할 수 있으며이 컨텍스트에서 개체를 가져오고 삽입, 편집 및 삭제할 수 있습니다. 객체는 NSManagedObject의 서브 클래스입니다. 신경 써야 할 중요한 한 가지는 스레드입니다. NSManagedObject은 스레드로부터 안전하지 않으므로 스레드간에 전달해서는 안됩니다. 대신 NSManagedObjectsID을 사용하십시오. 중요한 점은 핵심 데이터 저장 방법에 신경 쓰지 않고도 저장소의 형식을 설정할 수 있지만 그 점에서 저장소를 선택할 때 고려해야 할 사항이 몇 가지 있습니다. 그리고 실행 사이에 데이터를 유지할 필요가 있는지 여부와 상관없이 코어 데이터가 세부 사항을 처리하도록하십시오).

더 알고 싶다면 Marcus Zarra's book is excellent

+0

괜찮 았지만 내 질문이 맞다. 내가 뭔가를 저장했다면 그 앱을 사용하는 다른 누군가가 저장된 값에 액세스 할 수 있습니까? 예를 들어 "A"가 핵심 데이터를 사용하여 주소를 저장하려는 경우 "B"가 "A"주소에 액세스 할 수 있습니다. 그것이 내가 성취하려고하는 것입니다. Ariel에게 답장을 보내 주셔서 감사합니다. – AustinT

+0

A와 B는 서로 다른 앱을 의미합니까? 그럼 싫어. 다른 기기의 데이터에 액세스하려는 경우 클라우드 (예 : iCloud 또는 Parse.com)에 데이터를 업로드해야합니다. 나는 여기서 당신의 필요를 정말로 이해하지 못합니다. –

1

코어 데이터는 장치 (및 iCloud)의 SQLite 데이터베이스와 상호 작용하기위한 객체 지향 API라는 블랙 박스입니다. SQL 데이터베이스 백엔드가있는 웹 서비스를 사용한다면 ... 나머지 인터페이스를 제공하는 웹 서비스 용 PHP 컨트롤러를 사용했습니다. 그런 다음 장치에서 데이터를 가져 와서 나머지 컨트롤러 메서드를 통해 http 게시물의 매개 변수로 적합한 데이터를 전달합니다. 그게 일반적인 일이든 최선의 방법이든 우리가 내 경험으로 해낸 것입니다.

+0

답장을 보내 주셔서 감사합니다. 좋아, 핵심 데이터를 사용할 때 나를 위해 데이터베이스 측을 처리 할 것이다. 코어 데이터를 사용할 때 서버에 연결해야합니까? 정말 고마워. – AustinT

+1

그것은 당신이하고 싶은 일에 달려 있습니다. 서버에 데이터를 푸시하려면 장치의 SQLite와 다른 데이터베이스가 필요합니다. 그리고 네, NSURLRequest를 서버에 보내서 데이터를 명시 적으로 게시물에 전달해야합니다. 핵심 데이터는 로컬 db (iCloud)와 상호 작용하기위한 것입니다. – geraldWilliam

+0

오케이, 아니요, 로컬이 아닌 데이터베이스와 상호 작용하고 싶다면 코어 데이터를 사용하지 않습니까? 당신이 로컬 데이터베이스를 말하면 장치 자체를 의미합니까? 제럴드 윌리엄 고맙습니다. – AustinT

관련 문제