【问题标题】:setting a var from another class设置另一个类的 var
【发布时间】:2011-07-25 16:18:43
【问题描述】:

在 Class1 中,我有一个名为“cDte1”的变量。我想从 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];

【问题讨论】:

    标签: iphone objective-c properties


    【解决方案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];
    

    【讨论】:

    • 好吧,这很有意义...我需要设置变量,然后打开该类并使用 presentModalViewController 显示它。这些不是类的 2 个不同实例吗?
    • 请参阅上面的其他 cmets
    【解决方案2】:

    您需要在类的实例上调用它,而不是类本身。比如:

    Class1 *instance = [[Class1 alloc] init];
    instance.cDte1 = @"test";
    

    【讨论】:

    • 请参阅上面的其他 cmets
    【解决方案3】:

    从 Class1 创建一个对象,然后尝试访问它。

    您不能使用类名访问属性。

    怎么样

    Class1 *object1 = [[Class1 alloc] init];
    object1.cDte1 = @"Test";
    

    【讨论】:

    • 请参阅上面的其他 cmets
    【解决方案4】:
    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

    【讨论】:

    • 请参阅上面的其他 cmets
    猜你喜欢
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-29
    • 2014-10-31
    相关资源
    最近更新 更多