如何在Objective C中访问另一个类中的变量

时间:2017-04-04 17:47:12

标签: ios objective-c

尝试访问类中的变量时遇到问题。我在AppDelegate.m中生成NSString,并希望在另一个class.m中使用此NSString。我使用" extern"在" AppDElegate.h"但我的项目没有建立。

我在AppDelegate.m中的代码是

NSString * deviceTokenString = [[[[deviceToken description] 
stringByReplacingOccurrencesOfString: @"<" withString: @""] 
stringByReplacingOccurrencesOfString: @">" withString: @""]   
stringByReplacingOccurrencesOfString: @" " withString: @""];

我在AppDelegate.h中的代码是

extern NSString *deviceTokenString;

并使用&#34; AnotherClass.m&#34;像这样

- (void) sendEndPoint{
NSLog(@"Token device  login:%@",deviceTokenString);
}

3 个答案:

答案 0 :(得分:1)

尝试将AppDelegate标头导入您要引用deviceTokenString的文件中。这将解决一个问题。

#import "AppDelegate.h"

但您遇到的另一个问题是您无法以这种方式初始化deviceTokenString。相反,您需要将该代码放在其他位置,例如application:didFinishLaunching:AppDelegate initialize类方法。

全局C变量只能使用常量或@"your string here"初始化。

答案 1 :(得分:0)

如果这是一个全局变量,你也可以使用NSUserDefaults存储它,可以从你想要的任何类访问它。

首先按如下方式存储:

NSString *deviceTokenString = // obtain your string here
[[NSUserDefaults standardUserDefaults] setObject: deviceTokenString forKey: @"deviceTokenString"];
[[NSUserDefaults standardUserDefaults] synchronize];

然后您可以使用以下方法检索它:

NSString *deviceTokenString = [[NSUserDefaults standardUserDefaults] stringForKey: @"deviceTokenString"];

答案 2 :(得分:0)

我们已经回答了这个问题。问:Click Here