尝试访问类中的变量时遇到问题。我在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);
}
答案 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