2014-12-19 95 views
0

今天我對你有一個非常簡單的問題,但我作爲Newby我有一些問題來解決我的問題。 Google不會幫助我。無法設置UIView子類的屬性

我有我的ViewController,我有一個第二類「Messestand」 在ViewController我有一個接口,用戶輸入一些浮點數據。

這個數據,我將轉移到Messestand級,其中其置於網格

這裏是我的代碼:

@interface Messestand : UIView { 

} 
float faktor; 
@property (assign, nonatomic) float breite; 
@property (assign, nonatomic) float laenge; 
@end 

Messestand.h

這其的代碼我ViewController:

-(IBAction)transfer:(id)sender { 
    NSString *varlaenge = eingabelaenge.text; 
    NSString *varbreite = eingabebreite.text; 
    Messestand.laenge.value = [varlaenge floatValue]; 
    Messestand.breite.value = [varbreite floatValue]; 
    ausgabebreite.text = [NSString stringWithFormat:@"%.1f",varbreite]; 
    ausgabelaenge.text = [NSString stringWithFormat:@"%.1f",varlaenge]; 
    [self.view endEditing:YES]; 
    [self.view addSubview:GrundrasterView]; 
} 

DatenuebertragungViewController.m

從編譯器中的輸出誤差其在線路: Messestand.laenge.value = [varlaenge的floatValue]; Messestand.breite.value = [varbreite floatValue];

我的問題IST,什麼是正確的語法廣告的用戶界面輸入的號碼,方便Messestand級Instanzes(Laenge,breite)

回答

2

它看起來像你實際上並沒有實例化一個Messestand對象。您嘗試將值分配給該類。 (或者你命名你的變量非常錯誤的)

不管怎麼說,而不是

Messestand.laenge.value = [varlaenge floatValue]; 
Messestand.breite.value = [varbreite floatValue]; 

你想這樣做:

Messestand *messestand = [[Messestand alloc] init]; 
messestand.laenge = [varlaenge floatValue]; 
messestand.breite = [varbreite floatValue]; 
0

好吧,這裏的解決方案代碼:

NSString *varlaenge = eingabelaenge.text; 
NSString *varbreite = eingabebreite.text; 
Messestand *messestand = [[Messestand alloc] init]; 
messestand.laenge = [varlaenge floatValue]; 
messestand.breite = [varbreite floatValue]; 
ausgabelaenge.text = [NSString stringWithFormat:@"%.1f",messestand.laenge]; 
ausgabebreite.text = [NSString stringWithFormat:@"%.1f",messestand.breite]; 
NSLog(@"%@, %@",varlaenge ,varbreite); 
NSLog(@"%f, %f",messestand.laenge ,messestand.breite); 
[self.view endEditing:YES]; 
[self.view addSubview:GrundrasterView]; 

但現在一個新的問題: 當我添加視圖(GrundrasterView,類是Messestand)的(LAE NGE & breite)是(空):(

目標是用戶輸入的長度和重量,並在接下來的視圖(GrundrasterView)其放置在網格上的視圖

-(void)drawRect:(CGRect)rect { 
int x1; 
faktor = 450/breite; 
x1 = faktor * laenge; 
if (x1 > 300) { 
    faktor = 300/laenge; 
} 
NSLog(@"faktor: %f", faktor); 
NSLog(@"Länge: %@", laenge); 
NSLog(@"Breite: %@", breite); 

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetLineWidth(context, 1.0); 
CGContextSetStrokeColorWithColor(context, [UIColor grayColor].CGColor); 
CGContextSetLineWidth(context, 2.0); 
CGRect rectangel = CGRectMake(10, 10, breite*faktor, laenge*faktor); 
CGContextAddRect(context, rectangel); 
CGContextStrokePath(context); 
CGContextSetLineWidth(context, 1.0); 
for (int i = 1; i < breite; i++) { 
    CGContextMoveToPoint(context, (i*faktor)+10, 10); 
    CGContextAddLineToPoint(context, (i*faktor)+10, laenge*faktor+10); 
    CGContextStrokePath(context); 
} 
for (int i = 1; i < laenge; i++) { 
    CGContextMoveToPoint(context, 10, (i*faktor)+10); 
    CGContextAddLineToPoint(context, breite*faktor+10, (i*faktor)+10); 
    CGContextStrokePath(context); 
} 
} 
-(void)dealloc { 
    [super dealloc]; 
} 
@end 

或者IST是什麼更好的時候我把所有的代碼放在ViewController .m中?