문제

내가 만든 모델에는 당신이 볼 수있:http://i.imagehost.org/0836/2009-11-08_14_37_41.png

나에 대한 정보를 저장하려는 사운드 카테고리고 일부 샘플은 소리에 대한 각 카테고리입니다.카테고리가 이름(@입니다)및 SoundsRelation(를 중지하는 경우-의 NSData 를 나타내는 소리).

여기에는 문제점:예를 들어 나는 몇 가지 카테고리를 포함하는 여러 가지 소리를 연결되어 있습니다.가정 수의 소리입니다 3.그래서 내가 할 경우

NSLog(@"description: \n%@", category);

나에 대한 정보를 참조하십시오름 및 이러한 세 가지 소리입니다.무언가 이것을 좋아한다:

Name = "Cat1";
SoundsRelation =     (
    0x174e90 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p9>,
    0x174ea0 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p10>,
    0x174eb0 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p11>
);

음을 취소하려면 이 카테고리의 소리입니다.나는 설정하려 SoundsRelation nil.

I do:

[category setValue:nil forKeyPath:@"SoundsRelation"];

지금 할 경우

NSLog(@"description: \n%@", category);

나는 다음과 같습니다.

Name = "Cat1";
SoundsRelation =     (
);

만,그것은 보인다 Cat1 없는 소리를 연결되어 있습니다.

지금 저장 managedObjectContext 사용 [managedObjectContext save:] 방법 종료 앱.

When I relaund 내 응용 프로그램

NSLog(@"description: \n%@", category);

나는 것입니다:

Name = "Cat1";
SoundsRelation =     (
    0x174e90 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p9>,
    0x174ea0 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p10>,
    0x174eb0 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p11>
);

요한 소리입니다!

면 지금,나는 무시 SoundsRelation 일부를 중지하는 경우-기타 포함하는 5 는 다른 소리:[category setValue:otherSetWithFiveSounds forKeyPath:@"SoundsRelation"];

마:NSLog(@"설명: %@"카테고리);

내가 참조하십시오:Name="Cat1";SoundsRelation=( 0x174e90, 0x174ef0, 0x174ab0, 0x1743b0, 0x1744b0 );

지금 저장하면,종료하고 다시 시작한 후,NSLogging 리고 나는 참조하십시오:

Name = "Cat1";
SoundsRelation =     (
    0x174e90 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p9>,
    0x174ea0 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p10>,
    0x174eb0 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p11>,
    0x174e90 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p12>,
    0x174ef0 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p13>,
    0x174ab0 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p14>,
    0x1743b0 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p15>,
    0x1744b0 <x-coredata://2E783972-3772-4CCA-9676-1D5F732D1FD2/Sounds/p16>
);

나는 오래 소리는 새로운 소리입니다!왜?나는 무엇을 해야 하는 완전히 재정의 오래 된 관계를 새로운 관계는?

도움이 되었습니까?

해결책

이 라인:

[category setValue:nil forKeyPath:@"SoundsRelation"];

지 않을 제거에서 소리 ManagedObjectContext.그냥 휴식 사이의 연결 범주체와 소리를 개체입니다.CoreData 좋아하지 않는 만들기 때문에 고아가 객체에 지속적인 저장합니다.를 다시 시작할 때,CoreData 정에 오류가 분리된 객체고 그것을 다시는 그들을 그들 본래 부모입니다.

당신이 사용해야 하는 명시적으'ManagedObjectContext deleteObject:`명령을 제거하는 소리와 당신은 당신을 확인할 필요가 있는 적절한 삭제 규칙을 설정해 관계입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top