从另一个类设置var

时间:2011-07-25 16:18:43

标签: iphone objective-c properties

在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];

4 个答案:

答案 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