在我的 AppDelegate 中,我导入了我创建的类的标题,并对其实例进行了属性化和合成(在 AppDelegate 中)。现在我正在尝试从其他两个视图访问此实例中的方法和变量。我对objective-c比较陌生,但到目前为止我已经了解到,如果我这样做:
AppDelegate *appdelegate = [AppDelegate new];
我将从 AppDelegate 中的类中获取一个新实例,因此如果我从一个视图设置变量,我将无法从另一个视图访问它。我已经读过,如果我这样做的话:
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;
这应该是对的,对吧?
我的类.h
@property (strong, nonatomic) NSString *string;
我的班级.m
@synthesize string;
然后当我尝试从 appDelegate 访问 myClass 时,我写道:
self.myClass.string = @"test";
NSLog(@"appDelegate: %@", self.myClass.string);
结果是:
appDelegate: (null)