根据这个答案,我试图声明和定义全局变量并得到这个错误:
架构 armv7 的未定义符号: “_loggedIn”,引用自: -[XYZAppDelegate 应用程序:didFinishLaunchingWithOptions:] 在 XYZAppDelegate.o -[XYZFolderViewController viewDidAppear:] 在 XYZFolderViewController.o -[XYZFolderViewController loginViewController:didEnterUsername:password:] 在 XYZFolderViewController.o ld:未找到架构 armv7 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
我在这里找到了很多答案,但它们都指的是不同的问题(据我所知)。
XYZAppDelegate.h
... extern BOOL 登录; ...
XYZAppDelegate.m:
... @implementation XYZAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 登录 = 0; ... } ...
XYZFolderViewController.h
... extern BOOL 登录; ...
XYZFolderViewController.m
... @执行 ... - (void)loginViewController:(XYZLoginViewController *)loginViewController didEnter用户名:(NSString *)用户名 密码:(NSString *)密码 { ... if ([username isEqualToString:theUsername] && [password isEqualToString:thePassword]) { 登录 = 1; /* 0 == 未登录。 1 == 已登录。 */ ... } ... }
此全局变量的要点是保存有关用户登录(或未登录)到应用程序的信息。我知道extern
在 Objective-C 中使用不是干净的方法。但是,除了extern
使用之外,我会感谢其他类型的解决方案的提示。期待这是菜鸟问题。