繁体   English   中英

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

[英]Objective-C variable that is accessible in other classes

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

1)我创建了委托方法并通过委托发送字符串

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

控制台显示了这个

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

2)我创建了方法getCurrentLanguage

static NSString *language;



+(NSString*)getCurrentLanguage {
   return language;
}

像这样访问

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

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

@property (nonatomic, copy) NSString* language;

要设置语言时:

  • yourObj您的类实例: yourObj

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

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

@property(copy)NSString * title;

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

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

在这里阅读更多关于Objective-C属性的信息

如果您想从其他类访问它,则无需创建诸如setLanguageForControllergetCurrentLanguage类的方法即可获取和设置变量。 您需要在interface文件或.h文件中创建一个property ,该property将是公共的,并提供其gettersetter方法,您可以通过包含该property类的instance变量从任何类访问该方法。

您可以在.h或类interface文件中声明您的property ,如下所示:

@property (nonatomic, strong) NSString* language;

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

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

获得其价值。 您需要像这样使用相同的instance变量

NSString *strLanguageValue = obj.language;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM