2012-07-02 4 views
0

많은 데이터 사용에서 혼란 스럽습니다. CoreData의 EG 및 NSManagedObject 하위 클래스의 속성 이름은 CoreData 속성의 속성과 동일합니다. 비슷한 일이 NSXMLParser에서도 계속됩니다.속성 이름 및 데이터와의 관계는 무엇입니까?

왜 이런가요? 그것은 사용되는 속성의 이름에 대한 문자열을 결코 볼 수 없으므로 혼란 스럽습니다. NS 불러 오기 요청 객체를 가져 오는 동안 나는

"<Person: 0x6d5be20> (entity: Person; id: 0x6d5dce0 <x-coredata://6800B6A5-87AF-46B4-9836-9D412A9B3EE4/Person/p1> ; data: {\n age = 51;\n firstName = Anthony;\n lastName = Robbins;\n})", 

배열 요소 중 하나입니다. 나는 다른 것을 기대하지 않을 것이다.

그러나 튜토리얼

제가

for (Person *thisPerson in persons) 

를 사용하여 어레이 (thisPerson 신비 속성 데이터 객체 임)를 통해 itterate 때. 속성 이름은 이름에 따라 정렬 된 것 같습니다.

  NSLog(@"First Name = %@", thisPerson.firstName); 

왜 이런가요? 분명히 NSRegex 표현과 문자열 수정에 대한 공세가이 데이터를 외삽 법으로 요구할 것입니다.

+0

귀하의 질문은 명확하지 않습니다 - 특히 Core Data에 관한 질문과 NSXMLParser에 관한 질문이 섞여 있습니다. 정확히 무엇을 요구하고 있습니까? 속성 이름을 어떻게 분류했다고 생각합니까? 특성을 정의하면 NSManagedObject가 같은 이름의 속성을 가질 것이라고 기대하지 않는 이유는 무엇입니까? –

+0

제 질문은 속성 이름이 외삽 한 데이터 유형과 같아야한다는 것입니다. 그것은 단순히 'dataNode'라고 불리는 속성이 배열에서 'dataNode = "data"'형식으로 배열을 통해 데이터를 가져올 수 있다고 생각합니다. 이 동작이 CoreData 및 NSXMLParser와 완전히 다른 점이 교차하는 것을 보니 정말 혼란 스럽습니다. 그리고 이해할 수 있어야 할 큰 불확실성이 있습니다. –

답변

0

핵심 데이터 ( NSXMLParser가 아닙니다.) 핵심 데이터는 속성 이름을 사용하여 모델의 해당 속성을 조회하기 만합니다. 당신이 foo.lastNameNSManagedObject 인스턴스 lastName에 액세스 할 경우

[foo valueForKey:@"lastName"] 

에 그 전화를 켜집니다 이것은 NSObject의 클래스는 다시 NSKeyValueCoding에 떨어질 것입니다

-(NSString *)lastName 

에 대한 구현이 없어야합니다 NSManagedObject 클래스는 -valueForKey: (및 기타 NSKeyValueCoding 관련 메서드)을 재정의하고이를 사용하여 NSPersistentStoreCoordinator을 통해 데이터에 액세스합니다.

+0

아. 하지만 NSXMLParser에서 비슷한 일이 발생하지는 않습니다. –

+0

귀하의 질문에 답변이 있으면 답변에 표시하십시오. NSXMLParser에 대한 별도의 질문 - 코어 데이터와 완전히 다른 것입니다. –

+0

아니에요, 내가 물어 보는 질문은 속성 이름과 elementNames와의 관계에 관한 것입니다. 동일합니까? –

관련 문제