我有一个名为GraphicPath
的对象,它存储填充颜色的CGMutablePath
和UIColor
值。然后,我有NSMutableArray
名为graphic
,其中存储了一系列这些GraphicPath
个对象,这些对象最终包含在另一个类的drawRect
中绘制的图像。
我还弹出一个小模块,让用户可以将颜色更改为此图形。所以我有一个单独的NSMutableArray
跟踪所述图形中与该模块接口的所有颜色。我们称之为colors
。每当我对colors
进行更改时,我都希望这样做,GraphicPath
中相应的颜色值也会发生变化(所以我不必进入{{1}的数组找到它来改变它)。
显然,每个GraphicPaths
属性中的UIColor
属性需要有一个指向GraphicPath
中颜色的指针。我对如何在数组colors
中保留UIColor
对象指针感到困惑,并且每当我更改此值时都会这样做,colors
中的相应值也会发生变化。
答案 0 :(得分:0)
正如评论中所说,你需要让你的GraphicPath对象的UIColor字段指向colors数组中的相应对象。因此,更改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];
接下来,如果要更改其中一个颜色的对象,则会更改颜色#变量,因此您将更改对象字段返回的值。 我猜是这样的。