我在我的应用程序中使用这种记录到服务器的机制:POST用户凭据到服务器,如果成功返回给我签名我未来的API调用所需的令牌。 问题是如何在我的应用程序的所有类之间共享此标记(或记录的APIClient的实例)?
现在我在每个控制器属性“令牌”中进行操作,并且在执行每个segue时我必须初始化它,这是太多的锅炉代码,所以我正在寻找解决方案以其他方式共享。感谢
答案 0 :(得分:1)
如何在我的应用程序的所有类之间共享此标记(或记录的APIClient的实例)?
shared instance
-
实现此目的的一些示例代码:
// APIHelper.h
@interface APIHelper : NSObject
@property (nonatomic) NSString *mySuccessToken; // can be any data type
+ (instancetype)sharedInstance;
@end
// APIHelper.m
@implementation APIHelper
+ (instancetype)sharedInstance{
static dispatch_once_t once;
static APIHelper *sharedInstance;
dispatch_once(&once, ^{
sharedInstance = [self new];
});
return sharedInstance;
}
@end
// Usage of the APIHelper shared instance
// In the function responsible for firing the network request
[MyFetchRequestWithSuccess:^{
...
[APIHelper sharedInstance].mySuccessToken = receivedSuccessToken; // update the shared instance with your received success token from the request
} failure:^{
...
}]