AppDelegate で、作成したクラスのヘッダーをインポートし、そのインスタンスをプロパティ化して合成しました (AppDelegate で)。今、他の 2 つのビューからこのインスタンス内のメソッドと変数にアクセスしようとしています。私はobjective-cには比較的慣れていませんが、これまでのところ、これを行うと次のことがわかりました。
AppDelegate *appdelegate = [AppDelegate new];
AppDelegate 内のクラスから新しいインスタンスを取得するだけなので、1 つのビューから変数を設定すると、別のビューからはアクセスできません。私がこのようにするなら、私はそれを読んだ:
AppDelegate *ap = (AppDelegate *)[[UIApplication sharedApplication] delegate];
これにより、既存のインスタンスにアクセスできるようになります。しかし、うまくいきません。
私がこれをやろうとしている方法は完全に間違っていますか? 助けてくれてどうもありがとう!
アップデート:
AppDelegate 内でこれを行うと、次のようになります。
myClass.string = @"test";
NSLog(@"appDelegate: %@", myClass.string);
私はこれを得る:
appDelegate: (null)
更新 2:
@class AppDelegate; と書きました。viewController の @import 行の下にありますが、それでも myClass にアクセスできません。これがビューから機能しない主な問題は、AppDelegate から myClass にアクセスすることさえできないことです。
AppDelegate.h に次のように書きました。
@property (strong, nonatomic) testClass *myClass;
AppDelegate.m で:
#import "testClass.h"
@synthesize myClass;
これは正しいはずですよね?
myClass.h
@property (strong, nonatomic) NSString *string;
myClass.m
@synthesize string;
次に、appDelegate から myClass にアクセスしようとすると、次のように記述します。
self.myClass.string = @"test";
NSLog(@"appDelegate: %@", self.myClass.string);
結果は次のとおりです。
appDelegate: (null)