코어 데이터 작업을 수행하는 데 필요한 기본 작업을 이해하려면 Core Data Utlity Tutorial을 따라야합니다. 이 유틸리티는 코어 데이터 저장소를 생성하고 프로세스 ID와 실행 날짜가 실행될 때마다 & 시간을 저장합니다. 또한 이전 실행의 세부 사항을 보여줍니다.왜 primitiveDate가 코어 데이터 유틸리티 자습서에 정의되어 있습니까?
관리 대상 클래스가 정의 될 때까지 모든 것이 잘 진행되고있었습니다. 다음과 같이 정의됩니다 :
@interface Run : NSManagedObject
{
NSInteger processId;
}
@property (assign) NSInteger processId;
@property (retain) NSDate* date;
@property (retain) NSDate* primitiveDate;
@end
두 개의 다른 날짜 속성을 정의합니다. 자습서에서는 새 오브젝트가 삽입 될 때 primitiveDate
이 설정되는 메소드도 정의합니다. 우리가 대신 date
재산을 primitiveDate
을 설정하는 이유
- (void) awakeFromInsert {
[super awakeFromInsert];
self.primitiveDate = [NSDate date];
}
는 이해가 안 돼요. 나는 심지어 우리가 필요한 것이 모두 date
과 processId
일 때 primitiveDate
이 정의되는 이유조차 모릅니다. 나는 모든 라인을 읽은 후 라인들 사이를 읽으려고했으나 여전히 얻을 수 없었다. 제발 도와 주실 수 있습니까? 내가 뭘 놓치고 있는지 모르겠다.
답변 해 주셔서 감사합니다. 그러나'primitiveDate'를 설정하면'date'도 어떻게 설정됩니까? 어떤 곳에서도'date'를 설정하고 있지만 설정되고 저장되고 검색된 것으로 보입니다. – Hemant
관리되는 객체에서, 속성을위한 표준 액세서'foo'와'setFoo :'는 엄청난 양의 마법을 필요로합니다. 따라서 관리 객체의 동작을 수정하려면 fancy magic을 포함하지 않는'primitiveFoo'와'setPrimitiveFoo :'를 사용해야합니다. 그러나 둘 다 동일한 속성'foo'를 참조합니다. http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdAccessorMethods.html#//apple_ref/doc/uid/TP40002154-SW1을 읽어보십시오. – Yuji
오 이런! 그게 다야? 나는 그것이 완전히 다른 속성이라고 생각했습니다. 그것을 지워 줘서 고마워. 나는 불타는 지옥에 있었다. (이 마법 물건은 프로그래밍에서 양날의 검이다.) – Hemant