0

我有一个名为的对象GraphicPath,它存储一个CGMutablePath和一个UIColor填充颜色的值。然后我有一个NSMutableArray调用graphic来存储一系列这些GraphicPath对象,这些对象最终组成了drawRect另一个类中绘制的图像。

我还有一个弹出的小模块,可以让用户更改此图形的颜色。所以我有一个单独NSMutableArray的跟踪与该模块接口的所述图形中的所有颜色。让我们称之为colors。我想这样做,所以每当我对 进行更改时colors,相应的颜色值GraphicPath也会更改(因此我不必进入 Array 的内部GraphicPaths来找到它来更改它)。

所以很明显UIColor,每个GraphicPath属性中的属性都需要有一个指向颜色的指针colors。我对如何UIColor在数组中保留对象指针感到非常困惑colors,并且每当我更改此值时,a 中的相应值GraphicPath也会更改。

4

1 回答 1

0

正如评论中所说,您需要使您的 GraphicPath 对象的 UIColor 字段指向颜色数组中的相应对象。因此,更改颜色数组中的对象将导致自定义对象的 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];

因此,接下来如果您要更改其中一个颜色的对象,您将更改 color# 变量,因此您将更改由您的 objects 字段返回的值。我猜是这样的。

于 2012-10-20T18:33:17.383 回答