以下是思考,我得到了MasterViewController
UIViewController
,这得到了一个协议<NSURLSessionDelegate>
,我有一些代码在{{1}完全正常运行}
代码......
IBAction
但我真正需要的是以- (IBAction)testing:(id)sender
{
DataWeb *fdi = [self.arrIniFile objectAtIndex:0]; //array with some object
fdi.downloadTask = [self.session downloadTaskWithURL:[NSURL URLWithString:fdi.downloadSource]];
fdi.taskIdentifier = fdi.downloadTask.taskIdentifier;
[fdi.downloadTask resume];
}
这种方式运行代码......
viewDidLoad
这是因为,当- (void)viewDidLoad
{
[super viewDidLoad];
//Need to run this code here
DataWeb *fdi = [self.arrIniFile objectAtIndex:0]; //array with some object
fdi.downloadTask = [self.session downloadTaskWithURL:[NSURL URLWithString:fdi.downloadSource]];
fdi.taskIdentifier = fdi.downloadTask.taskIdentifier;
[fdi.downloadTask resume];
NSArray *URLs = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
self.docDirectoryURL = [URLs objectAtIndex:0];
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfiguration:@"com.myApp"];
sessionConfiguration.HTTPMaximumConnectionsPerHost = 5;
self.session = [NSURLSession sessionWithConfiguration:sessionConfiguration
delegate:self
delegateQueue:nil];
}
完成加载文件viewDidLoad
(并且此对象具有NSString属性[self.arrIniFile objectAtIndex:0]
)时,我需要文件开始下载并在后台完成,没有任何用户的互动。
接口文件(h)有此标题
fdi.downloadSource
我使用这个协议方法
@interface MasterViewController : UIViewController <NSURLSessionDelegate>
但是当我使用viewDidLoad时,该代码永远不会被激活,在IBAction中jus,我需要它在viewDidLoad中。我试着尽可能清楚地解释,希望有人给我任何建议。提前致谢。