Objective-C变量,可在其他类中访问

时间:2017-02-03 04:53:49

标签: ios objective-c xcode delegates protocols

我有一个名为language的NSString对象,我想从其他类访问它的正确方法是什么?我尝试了以下步骤:

1)我创建了委托方法并通过委托

发送字符串
for j in $l 
do
    echo $j; # whatever you need to do here 
done

控制台显示了这个

  

无法识别的选择器发送给实例委托

2)我创建了方法getCurrentLanguage

-(void)setLanguageForController:(NSString *)language {
     self.language = language;
}

并像这样访问

  

NSString * myLanguage = [[MyView alloc] getCurrentLanguage];

2 个答案:

答案 0 :(得分:3)

您应该将language声明为类.h文件中的属性。

@property (nonatomic, copy) NSString* language;

如果您想设置语言:

  • 初始化您的班级实例:yourObj

  • call: yourObj.language = "whatever"[yourObj setLanguage:"whatever"];

    每个属性声明都以类型说明和名称结尾。 例如:

  

@property(copy)NSString * title;

此语法等同于声明以下访问器方法:

- (NSString *)title;
- (void)setTitle:(NSString *)newTitle;

详细了解objective-C属性here

答案 1 :(得分:0)

如果您想从其他类访问变量,则无需像getCurrentLanguageproperty那样创建和设置变量。您需要在interface文件或.h文件中创建getter,它将是公开的,并提供其setterinstance方法,您可以从任何类访问该方法在您的类的property变量中包含property

您可以在.h或类interface文件中声明@property (nonatomic, strong) NSString* language; ,如下所示:

obj.language = @"value"; or [obj setLanguage:@"value"];

要设置它的值,您可以使用。

instance

获得它的价值。您需要使用相同的NSString *strLanguageValue = obj.language; 变量

{{1}}