从另一个类访问变量 - Objective-C [英] Access Variable from Another Class - Objective-C

查看:119
本文介绍了从另一个类访问变量 - Objective-C的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

之前可能已经提出过这个问题,所以我很抱歉。

This question has probably been asked before so I'm sorry.

我正在开发一款iPhone应用程序,让我说我在class1中有一个变量var 。我想在class2中添加一个UIButton,当它命中时将var重置为0.当应用程序关闭时保存var值,所以当视图加载var时会分配值(我假设你们可能已经想到了但是我认为会澄清代码)。
我怎么写这样的东西?这基本上就是我尝试过的:

I am working on an iPhone app and lets say I have a variable, var, in class1. I want to add a UIButton in class2 which when hit resets the var to 0. The var value is saved when the app closes so when the view loads var is assigned with the value (I assume you guys could have figured that out but figured I would clarify the code). How can I write something like this? Here's basically what I tried:

@interface Class1 { 
    double var;
}
-(void)resetVar;
@end

@implementation Class1
-(void)viewDidLoad {
    NSUserDefaults *loadCount = [NSUserDefaults standardUserDefaults];
    var = [loadNoCount doubleForKey:@"count"];
}
-(void)resetVar {
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"count"];
    var = 0;
}


@interface Class2 { 
    Class1 *classObj;
}
@property(nonatomic, retain) Class1 *classObj;
-(IBAction)reset:(id)sender;
@end

@implementation Class2

-(void)viewDidLoad {
    classObj = [[Class1 alloc] init];
}
-(IBAction)reset:(id)sender {
    [classObj resetVar];
}
@end


推荐答案

在要设置变量的类上使用setter方法-setVar:或类似方法。您无法访问其他对象的实例变量:默认情况下它们都是私有的。

Use a setter method -setVar: or similar on the class that you want to set the variable in. You can't access instance variables of other objects: they are all private by default.

这篇关于从另一个类访问变量 - Objective-C的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆