この回答によると、グローバル変数を宣言して定義しようとすると、次のエラーが発生します。
アーキテクチャー 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 didEnterUsername:(NSString *)ユーザー名 パスワード:(NSString *)パスワード { ... if ([ユーザー名 isEqualToString:ユーザー名] && [パスワード isEqualToString:パスワード]) { ログイン = 1; /* 0 == ログインしていません。 1 == ログインしています。 */ ... } ... }
このグローバル変数のポイントは、アプリにログインしている (またはログインしていない) ユーザーに関する情報を保持することです。extern
Objective-C での使用はクリーンなアプローチではないことを認識しています。ただし、extern
使用法以外に、他の種類の解決策のヒントをいただければ幸いです。これを期待するのは初歩的な質問です。