我正在尝试实现一个单例来管理NSURLSession请求。这是我的代码:
头文件:
@interface httpRequest : NSObject
@property (strong,nonatomic) NSURLSession *session;
+(httpRequest*)request;
实施文件(.m):
+(httpRequest*)request
{
static httpRequest *shareObject = nil;
static dispatch_once_t onceToken;
dispatch_once ( &onceToken, ^{
shareObject = [[self alloc] init];
self.session = [NSURLSession sharedSession];
});
return shareObject;
}
但在这一行:
self.session = [NSURLSession sharedSession];
我收到此错误:“ NSURLSession成员引用类型结构objc_class是您要使用的指针->”
为什么我出错了?你们中的任何人都知道解决这个问题的方法吗?
最佳答案
通常的方法是使用init
方法
+(httpRequest*)request
{
static httpRequest *shareObject = nil;
static dispatch_once_t onceToken;
dispatch_once ( &onceToken, ^{
shareObject = [[self alloc] init];
});
return shareObject;
}
- (id)init
{
self = [super init];
if (self) {
self.session = [NSURLSession sharedSession];
}
}
return self;
}
但是由于
sharedObject
实际上是self
这也应该起作用+(httpRequest*)request
{
static httpRequest *shareObject = nil;
static dispatch_once_t onceToken;
dispatch_once ( &onceToken, ^{
shareObject = [[self alloc] init];
shareObject.session = [NSURLSession sharedSession];
});
return shareObject;
}
关于ios - NSURLSession成员引用类型struct objc_class是指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41150381/