2012-10-20 3 views
0

GraphicPath이라는 객체에는 채우기 색상 값으로 CGMutablePathUIColor 값이 저장됩니다. 그런 다음 graphic이라는 일련의 GraphicPath 개체를 저장하며 궁극적으로 다른 클래스의 drawRect에 그려진 이미지를 구성합니다.NSMutableArray의 다른 객체에 포인터 저장 및 변경

사용자가이 그래픽으로 색을 바꿀 수있는 작은 모듈도 있습니다. 그래서 나는 그래픽에서이 모듈과 인터페이스하는 모든 색을 추적하는 별도의 NSMutableArray을 가지고있다. colors이라고합시다. 나는 colors을 변경할 때마다 GraphicPath의 해당 색상 값도 변경되므로 변경해야합니다. 따라서 배열을 변경하려면 GraphicPaths의 배열 안으로 들어갈 필요가 없습니다.

GraphicPath 속성의 UIColor 속성에는 색상에 대한 포인터가 colors이어야합니다. 나는 배열 UIColor을 배열 colors에 유지하는 방법에 대해 혼란스럽고,이 값을 변경할 때마다 GraphicPath의 해당 값도 변경됩니다.

+0

그래서 'UIColor'속성을 가진'GraphicPath' 개체와'UIColor'의 배열을 변경할 수 있습니다. 그리고 객체가 변경 가능한 배열에서 '변경'될 때, 'GraphicPath'에서 변경되기를 원하십니까? 그러나 'UIColor'는 변경 가능하지 않으므로 오브젝트가 변경되지 않습니다. 어쩌면 개체가 색상 배열에 추가되거나 색상 배열에서 제거 될 때 각 'GraphicPath'는 색상이 여전히 배열에 있는지 확인해야합니다. 색상의 배열에 어떤 특정한 변화가 일어나고 그 변화가 경로 객체로 어떻게 전파되는지에 관해서는 정말 실종 상태입니다. 그걸 확대 할 수 있니? –

+0

사용자가 특정 색상을 변경하거나 그래픽의 모자 색상을 변경하면 해당 색상 배열이 모자 색상을 저장하는 색인으로 변경됩니다. 그런 다음 그래픽이 다시 그려지면 MutableArray에서 모자 색상의 주소를 참조하기 때문에 모자 색상을 저장하는 모든 GraphicPath도 변경됩니다. –

+0

그러면 사용자가 인덱스 3의 색상을 새 것으로 대체하면 색인 3에서 교체 된 색상을 저장하는 '색상'속성이있는 모든 'GraphicPath'가 자동으로 색인 3의 대체 색상을 참조하기 시작해야합니다 ? 해결책은 색상 경로가 색상을 소유하지 않고 일부 키 또는 이름 또는이 경우 색인으로 참조하는 것과 관련이있는 것처럼 보입니다. 그릴 때가되면 적절한 키/이름/색인에서 색상을 검색합니다 ... –

답변

0

의견에 따르면 GraphicPath 객체의 UIColor 필드가 colors 배열의 해당 객체를 가리 키도록해야합니다. 그래서 색상 배열에서 객체를 변경하면 사용자 정의 객체의 UIColor 필드가 "변경"됩니다. 예를 들어, 당신이있는 경우 : 당신은 색의 개체 중 하나를 변경한다면

UIColor *color1, color2, color3, etc; 
NSMutableArray *colors = [[NSMutableArray alloc] initWithObjects:color1, color2, color3, nil]; 

NSMutableDictionary *graphicDictionary = [[NSMutableDictionary alloc] init]; 
[graphicDictionary setObject:somePathObject forKey:@"path"] 
[graphicDictionary setObject:[colors objectAtIndex:0] forKey:@"color"]; 
GraphicPath *firstGraphicPathObject = [[GraphicPath alloc] initWithDitionary:graphicDictionary]; 

그래서 다음, 당신은 색상 # 변수를 변경됩니다, 그래서 당신은 당신의 객체 필드에 의해 반환되는 값을 변경합니다. 그런 것 같아요.