今天我有一个非常简单的问题,但是我作为Newby,我有一些问题要解决我的问题。谷歌不会帮助我。
我是我的ViewController,我有第二个类“Messestand” 在ViewController上我有一个用户输入一些浮动数据的界面。
此数据我将转移到Messestand-Class,其中放置了一个网格
这是我的代码:
@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];
我的问题是,输入Messestand-Class Instanzes(Laenge,breite)的用户界面输入数字的正确语法是什么
答案 0 :(得分: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];
答案 1 :(得分: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];
但是现在出现了一个新问题: 当我添加View(GrundrasterView,类是Messestand)时,(laenge& breite)是(null):(
目标是用户输入长度和重量并在下一个View(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
或者当我将所有代码放在ViewController .m?
中时,它是否更好