Objective c 与财产名称和数据的关系?

Objective c 与财产名称和数据的关系?,objective-c,xcode,Objective C,Xcode,在数据的许多用途中,有一件事让我感到困惑。例如,CoreData和NSManagedObject子类中的属性名称与CoreData属性中的属性名称相同。NSXMLParser也有类似的情况 为什么会这样?这让我很困惑,因为我从来没有看到使用属性名称的字符串。在登录获取的获取请求对象时 "<Person: 0x6d5be20> (entity: Person; id: 0x6d5dce0 <x-coredata://6800B6A5-87AF-46B4-9836-9D41

在数据的许多用途中,有一件事让我感到困惑。例如,CoreData和NSManagedObject子类中的属性名称与CoreData属性中的属性名称相同。NSXMLParser也有类似的情况

为什么会这样?这让我很困惑,因为我从来没有看到使用属性名称的字符串。在登录获取的获取请求对象时

    "<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})",
(此人是具有神秘属性的数据对象)。属性名称似乎已按名称排序

            NSLog(@"First Name = %@", thisPerson.firstName);
这到底是为什么?当然,外推此数据需要大量NSRegex表达式和字符串修改。

至于核心数据(而不是NSXMLParser),核心数据只是使用属性名称在模型中查找相应的属性。如果使用
foo.lastName
NSManagedObject
实例上访问
lastName
,则不应实现

-(NSString *)lastName
这将导致NSObject类退回到
NSKeyValueCoding
,从而将该调用转换为

[foo valueForKey:@"lastName"]

NSManagedObject
类重写了
-valueForKey:
(以及其他
NSKeyValueCoding
相关方法),并使用该方法通过
NSPersistentStoreCoordinator

访问数据。您的问题不是很清楚——特别是将关于核心数据的问题与关于NSXMLParser的问题混为一谈。你到底在问什么?是什么让你认为财产名称已经分类?如果定义属性,为什么不希望NSManagedObject的属性具有相同的名称?我的问题是为什么属性名称必须与它们推断的数据类型相同。在我看来,一个简单称为“dataNode”的属性可以从数组中获取数据,因为它在数组中被格式化为“dataNode=”data“。我看到这种行为跨越了完全不同的东西,比如CoreData和NSXMLParser,这真是令人困惑。这是一个很大的不确定性,我需要能够理解。啊。但是NSXMLParser没有发生类似的情况。如果这回答了您的问题,请标记一个已回答。为NSXMLParser提出一个单独的问题——它与核心数据完全不同。不,不是,我要问的问题是关于属性名和元素名的关系是否相同?
[foo valueForKey:@"lastName"]