根据这个答案,我试图声明和定义全局变量并得到这个错误:
架构 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使用之外,我会感谢其他类型的解决方案的提示。期待这是菜鸟问题。