在多个类中,我使用[NSApp delegate]从访问某些属性的位置获取主appdelegate。这是按预期工作的,但是当我对使用它的代码进行单元测试时,此委托为零。
我怎么在考试中处理这个问题?有没有可能写一个模拟的东西?

最佳答案

创建一个单独的singleton类,该类可用于存储全局属性,并让app delegate执行其委派角色,仅此而已:
应用程序属性.h:

@interface AppProperties : NSObject

@property (strong, nonatomic) NSString *prop1;
@property (strong, nonatomic) NSNumber *prop2;
@property (strong, nonatomic) NSMutableArray *prop3;

+ (AppProperties *)sharedInstance;

@end

应用程序属性.m:
@implementation AppProperties

@synthesize prop1, prop2, prop3;

+ (AppProperties *)sharedInstance {
    static AppProperties *instance = nil;
    static dispatch_once_t onceToken = 0;
    dispatch_once(&onceToken, ^{
        instance = [[AppProperties alloc] init];
    });
    return instance;
}

@end

09-25 17:20