2010-04-05 45 views
1

我想开发一个应用程序,首先我开发了一个用于存储X轴和Y轴的结构代码。将动态数据存储在NSMutableArray中的问题?

struct TCo_ordinates {0} 0 0 0 float x; float y; }; 。 然后在drawRect方法中,我生成一个类似结构的对象。

struct TCo_ordinates *tCoordianates; 

现在我画Y轴的图形,它的代码是。

fltX1 = 30; 
fltY1 = 5; 
fltX2 = fltX1; 
fltY2 = 270; 
CGContextMoveToPoint(ctx, fltX1, fltY1); 
CGContextAddLineToPoint(ctx, fltX2, fltY2); 
NSArray *hoursInDays = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12", nil]; 
for(int intIndex = 0 ; intIndex < [hoursInDays count] ; fltY2-=20, intIndex++) 
{ 
    CGContextSetRGBStrokeColor(ctx, 2, 2, 2, 1); 
    //CGContextSetRGBStrokeColor(ctx, 1.0f/255.0f, 1.0f/255.0f, 1.0f/255.0f, 1.0f); 
    CGContextMoveToPoint(ctx, fltX1-3 , fltY2-40); 
    CGContextAddLineToPoint(ctx, fltX1+3, fltY2-40); 
    CGContextSelectFont(ctx, "Helvetica", 14.0, kCGEncodingMacRoman); 
    CGContextSetTextDrawingMode(ctx, kCGTextFill); 
    CGContextSetRGBFillColor(ctx, 0, 255, 255, 1); 
    CGAffineTransform xform = CGAffineTransformMake(
                1.0, 0.0, 
                0.0, -1.0, 
                0.0, 0.0); 
    CGContextSetTextMatrix(ctx, xform); 
    const char *arrayDataForYAxis = [[hoursInDays objectAtIndex:intIndex] UTF8String]; 
    float x1 = fltX1-23; 
    float y1 = fltY2-37; 
    CGContextShowTextAtPoint(ctx, x1, y1, arrayDataForYAxis, strlen(arrayDataForYAxis)); 
    CGContextStrokePath(ctx); 

现在我想存储动态生成的X1和Y1的值NSMutableArray里,对于我写的代码。

NSMutableArray *yAxisCoordinates = [[NSMutableArray alloc] autorelease]; 
    for(int yObject = 0; yObject < intIndex; yObject++) 
    { 
     [yAxisCoordinates insertObject:(tCoordianates->x = x1,tCoordianates->y = y1) atIndex:yObject]; 

    } 

但它没有工作。我如何在yAxisCoordinates对象中存储x1和y1值。 以上代码是正确的?????????????

回答

2

至于我可以看到(我没看过整个绘图代码,刚刚过去的部分),也有你的代码的几个问题:

  1. 你正在创建一个新的起点结构在那里你可以使用CGPoint
  2. 您在NSMutableArray上不打电话init
  3. 你试图插入东西到数组中,但它不是TCo_ordinates结构。
  4. 即使是这样,你的也不能NSArray中存储一个结构,你必须存储一个对象。

这里有一种方法,以点存储在一个NSArray

NSMutableArray *foo = [NSMutableArray array]; 
NSValue * bar = [NSValue valueWithCGPoint:CGPointMake(x, y)]; 
[foo addObject:bar]; 

,你可以在以后检索你的观点:

CGPoint point = [[foo objectAtIndex:i] CGPointValue]; 
相关问题