2013-05-04 2 views
0

Вопрос заключается в рисовании декартовой диаграммы, которую я должен создать с некоторыми значениями, вычисленными в моем классе «контроллер». Я написал это в файле .m моего класса контроллера:Как передать значения из класса контроллера классу NSView?

(view1 является istance класса NSView)

for (time=1;time<=duration;time++){ 
    .... 
    ... 
    [view1 setValues:True]; 
    ... 
} 

и в файле .m моего класса NSView:

-(void)setValues:(float)val{ 
    int i=1; 
    list[i]=val; 
    //NSLog(@" %f",list[i]); 
    i++; 
} 

Теперь, как передать те значения (массив, который я создал со значениями, которые я передал из моего класса контроллера), на «drawRect»?


EDIT:

@interface viewShapes1 : NSView { 
    float list[480]; 
} 

-(void)setValues:(float)val; 
-(float*)getList; 

@end 

#import "viewShapes1.h" 

@implementation viewShapes1 

- (id)initWithFrame:(NSRect)frame { 
    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code here. 
    } 

    return self; 
} 

-(void)setValues:(float)val { 
    int i=1; 
    list[i]=val; 
    i++; 
} 

-(float*)getList { 
    return list; 
} 

- (void)drawRect:(NSRect)dirtyRect { 
    float*ptr=[self getList]; 

    for(int i=1;i<=480;i++){ 
     //element of array: 
     NSLog(@"%f",ptr[i]); 
    } 

    [...] 
} 

#import "controller.h" 

[...] 


-(IBAction)start:(id)sender 
{ 

    [...] 

    for(time=1;time<=duration;time=time+1) 
    { 
     [...] 

     [view1 setValues:myValue]; 

     [...] 
    } 
} 

проблема заключается в том, что DrawRect, кажется, не принимать значения ..

+0

реализовать протокол делегата. –

+0

Вы инициализируете i в цикле for? Кроме того, я не согласен с @AnoopVaidya. Похоже, что список ivar содержит значения, передаваемые setValues. Просто обратитесь к списку в drawRect. – danh

+0

@ danh: y не согласен, я думаю, он хочет передать view1 –

ответ

0

Это частичное решение. У меня была такая же проблема.

Необходимо проверить идентификатор объекта (предположим). Вы, конечно, отправляете сообщение на неправильный объект - это, по крайней мере, моя проблема. Попытайтесь получить идентификаторы обоих объектов - если они одинаковые, идеальны.

в виду:

Nslog(@"%@",self); 

контроллер класса:

NSLog(@"%@",view1); 
Смежные вопросы