2011-12-27 5 views
4

코어 데이터 SQLite 저장소를 만들기 위해 CSV 파일을 반복 실행하는이 명령 줄 응용 프로그램이 있습니다. 어떤 점에서 나는이 일대 관계 routesschedules이있는,이 SPStop 객체를 짓고 있어요 : (이전 또는 저장 한 후, 같은 결과) 내 stopObject 객체를 로그인하는 경우코어 데이터 관계가 저장되지 않았습니다.

SPRoute *route = (SPRoute*)[self.idTransformer objectForOldID:routeID ofType:@"routes" onContext:self.coreDataController.managedObjectContext]; 

SPStop *stopObject = (SPStop*)[self.idTransformer objectForOldID:stopID ofType:@"stops" onContext:self.coreDataController.managedObjectContext]; 
[stopObject addSchedulesObject:scheduleObject]; 
[stopObject addRoutesObject:route]; 

[self.coreDataController saveMOC]; 

을, 나는 다음을 얻을 :

latitude = "45.50909"; 
longitude = "-73.80914"; 
name = "Roxboro-Pierrefonds"; 
routes =  (
    "0x10480b1b0 <x-coredata://A7B68C47-3F73-4B7E-9971-2B2CC42DB56E/SPRoute/p2>" 
); 
schedules =  (
    "0x104833c60 <x-coredata:///SPSchedule/tB5BCE5DC-1B08-4D11-BCBB-82CD9AC42AFF131>" 
); 

경로 및 일정 개체 URL 형식이 다른 점에 유의하십시오. 왜냐하면 내가 sqlite 저장소를 사용하고 동일한 stopObject을 인쇄 할 때 나의 routes 세트는 비어 있지만 schedules은 그렇지 않다는 이유로 길 아래에 있어야하기 때문이다.

나는 이것이 매우 작은 디버깅 정보라는 것을 알았지 만 다른 URL 형식이 누군가를 위해 벨을 울릴 수 있습니까? 이 문제를 일으키는 원인이 될 수있는 일은 무엇이겠습니까?

EDIT : 하나의 SPRoute 개체는 한 번에 하나의 SPStop에만 할당 될 수 있습니다. 반복의 끝에 중단 점을 삽입하고 매번 sqlite를 보았습니다. SPRoute 객체 (이미 이전 stop.routes에 할당 되었음)가 새 SPStop에 할당되자 마자 이전 stop.routes 세트가 비게된다. 어떻게 이럴 수있어?

+0

경로 및 일정 접근 자/관계에있어 이상한 일을하고 있습니까? 아니면 둘 다 같지만 대상 엔티티가 다른가요? – jrturton

+0

@jrturton 접근자는 모두 Xcode에 의해 생성 된 모든 기본 접근입니다. 'schedule'은 역함수를 가지지 만'routes'는 역함수를 가지고 있습니다. 나는'routes'에 반대를 주려고했지만 아무 것도 바뀌지 않았습니다. – samvermette

답변

1

음, 우리는 분명히 어떤 상태 엑스 코드의 반비례 관계의 경고를 비활성화 한 :

SPStop.routes이 역이없는; 이 고급 설정입니다

하는 것은 바로 우리의 문제 된 (어떤 객체는 특정 관계에 대해 여러 지역에서 수 없다). 애플은 "데이터 무결성 (data integrity)"에만 도움이되기 때문에 역 관계를 버렸다. 우리 가게는 읽기 전용이므로 우리는 정말로 필요 없다고 생각했습니다. 우리는 역 관계가 "데이터 무결성"을위한 것 이상의 의미가 있음을 알게되었습니다 : P

관련 문제