내 핵심 데이터 앱에 이상한 문제가 있습니다.코어 데이터 저장 문제 : 변환 가능한 속성 (NSArray)을 업데이트 할 수 없습니다.
내 앱에는 세 개의 항목이 있지만 오늘은 그 중 하나에 문제가 있음을 발견했습니다. 내 문제가있는 엔티티는 Invoice
이며 Products
을 비롯한 많은 특성이 있습니다. 그것은 NSDictionaries의 NSArray를 인코딩합니다 (디폴트 NSValueTransformer를 통해).
모든 것이 잘 작동합니다. 인보이스, 고객, 제품 등을 만듭니다. 모든 것이 작동합니다. 내 응용 프로그램이 종료 될 때까지
그러나, 나는 목록에서 내 송장을 선택하고 제품을 편집하고 '저장'버튼을 클릭하려고 내 저장에만 작동합니다.
내 products
배열에만 문제가 있습니다. 나머지는 (예 : 결제일, 클라이언트 등) 저장합니다.
내가
내가
NSManagedObject *inv = [self.fetchedResultsController objectAtIndexPath:indexPath];
invoiceEditor.invoice = inv;
를 통해 내 Invoice
개체를 전달 그리고 (내 InvoiceEditor
VC에서) 내 데이터를 저장 뭐하는 거지 :
[self.invoice setValue:client forKey:@"Client"] // NSDictionary;
[self.invoice setValue:products forKey:@"Products"] // NSArray of NSDictionaries;
[self.invoice setValue:pmDate forKey:@"PaymentDate"] // NSDate;
// other attributes
NSManagedObjectContext *context = self.invoice.managedObjectContext;
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
Everythings 세이브 해지 될 때까지 : 클라이언트, 홍보 oducts, 날짜. 그러나 종료 후에 제품 만 '재설정'됩니다.
아무도 없습니까?
설명 : "제품이 '재설정되었습니다'라는 것은 무엇을 의미합니까? 제품 속성이 저장되지 않았다는 것을 의미합니까? 이전 값으로 되돌아 간다는 것을 의미합니까? 다시 말해서, ***는 *** 제품이 다시 시작된 후 'products' 속성을 볼 것을 기대하고 *** 실제로 *** 무엇을합니까? – TechZen
NSArray 내부에 NSDictionary 객체가 아니라 엔티티와 관계를 사용하지 않는 특별한 이유가 있습니까? 이는 매우 성가시고 (가장 가능성이있는) 느린 설정입니다. – TechZen
1. 제품 속성이 저장되지만 내 앱이 종료되면 이전 값으로 돌아갑니다. 2. 사용자가 삭제 한 경우에도 항상 제품이 필요하므로 관계를 사용하지 마십시오.'제품'이라는 엔티티가 있지만 'Invoice'에 사본을 저장하고 있습니다. – akashivskyy