在Class1中,我有一个名为“cDte1”的var。我想从Class2设置它。
Class1.h:
@interface Class1 : UIViewController {
NSString *cDte1;
}
@property (readwrite,assign) NSString *cDte1;
@end
在Class2.m中,我导入了Class1.h
然后我从Class2
尝试了这个 Class1.cDte1 = @"test";
但这不起作用。我做错了什么?
编辑,更多信息。如果我需要设置var然后显示视图,下面的代码不起作用,因为我假设该类有2个不同的实例?
Class1 *obj = [[Class1 alloc] init];
Class1 *myView = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]];
obj.cDte1 = @"7/25/2011";
[self presentModalViewController:myView animated:YES];
[myView release];
[obj release];
答案 0 :(得分:1)
您可以在类的实例上设置成员变量,而不是类。
所以你可以这样做:
Class1 obj = [[Class1 alloc] init];
obj.cDte1 = @"test";
编辑:在您的示例中,请尝试:
Class1 *myView = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]];
myView.cDte1 = @"7/25/2011";
[self presentModalViewController:myView animated:YES];
[myView release];
答案 1 :(得分:1)
您需要在类的实例上调用它,而不是类本身。类似的东西:
Class1 *instance = [[Class1 alloc] init];
instance.cDte1 = @"test";
答案 2 :(得分:0)
从Class1创建一个对象,然后尝试访问它。
您无法访问具有类名的属性。
怎么样
Class1 *object1 = [[Class1 alloc] init];
object1.cDte1 = @"Test";
答案 3 :(得分:0)
Class1 *viewController = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]];
viewController.cDte1 = @"7/25/2011";
[self presentModalViewController:viewController animated:YES];
[viewController release];
如果您要推送的ViewController是Class1的实例,这应该有效。确保有一个相应的InterfaceBuilder文件(Class1.xib)
如果您手动创建视图(没有IB,没有.xib),请不要只调用initWithNibName:bundle:
,而只调用init
。