다음 엔티티를 만들 때까지 endTime 속성을 공백으로 둘 수 있습니다. 엔티티의 + 작성 범주에서 마지막/첫 번째 오브젝트를 가져오고 (순서가 지정된 엔티티를 사용한다고 가정) 새 endTime에 사용 된 것과 동일한 값으로 endTime을 갱신하십시오.
개체를 주문하지 않으면 모든 개체가 집합에 들어 있기 때문에 약간 까다로울 수 있습니다. 하지만 주문하면 NSOrderedSet이 lastObject (및 firstObject)에 응답하기 때문에 좋다.
는
데미안에게,
편집을 즐기십시오 : 다음 중 1) 주식 기호에 대한 기존의 재고 엔티티를 반환 또는 2)에 해당 심볼에 대한 새로운 엔티티를 생성하는 예를 팩토리 메소드입니다. 엔티티를 가져오고 정렬 순서에 따라 처음/마지막을 선택하도록 매우 쉽게 수정됩니다. 다시 Hegarty 교수의 핵심 데이터 수업을 참조하십시오.
+ (Stock *)stockForSymbol:(NSString *)symbol inManagedObjectContext:(NSManagedObjectContext *)context {
Stock *stock = nil;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Stock"];
request.predicate = [NSPredicate predicateWithFormat:@"symbol = %@",symbol];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"symbol" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSError *error = nil;
NSArray *matches = [context executeFetchRequest:request error:&error];
if (!matches || [matches count] > 1) {
// handle error
} else if ([matches count] == 0) {
stock = [NSEntityDescription insertNewObjectForEntityForName:@"Stock" inManagedObjectContext:context];
stock.symbol = symbol;
stock.strategyPosition = [NSNumber numberWithInt:StrategyPositionFlat];
stock.userPosition = stock.strategyPosition;
stock.userOwns = [NSNumber numberWithBool:NO];
} else {
stock = [matches lastObject];
}
return stock;
}
이렇게하면 관리 객체 컨텍스트의 인스턴스를 두 번 만들어야합니까? – NNR
확실히 아닙니다 - 두 번째 파일을 만들 때 첫 번째 파일을 가져옵니다. 몇 분 안에 코드 예제를 첨부 하겠지만, 내가 배운 곳은 Paul Hegarty의 Stanford "iPad 및 iPhone 애플리케이션 개발"과정의 두 가지 핵심 데이터 클래스입니다. 이러한 강의는 매우 중요하며 핵심 데이터 엔티티의 카테고리 및 팩토리 메소드에 대해 모두 설명합니다. 나는 간단한 것을 게시 할 것이다. –
대단히 감사합니다. – NNR