![](/img/trans.png)
[英]Objective-C : Passing data between classes and making the data accessible from other classes
[英]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;
如果您想从其他类访问它,则无需创建诸如setLanguageForController
和getCurrentLanguage
类的方法即可获取和设置变量。 您需要在interface
文件或.h文件中创建一个property
,该property
将是公共的,并提供其getter
和setter
方法,您可以通过包含该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.