背景上的 NSStream 没有调用
Posted
技术标签:
【中文标题】背景上的 NSStream 没有调用【英文标题】:NSStream on Background didn't call 【发布时间】:2010-12-18 06:35:32 【问题描述】:- (void)applicationDidEnterBackground:(UIApplication *)application
NSOutputStream *outputStream;
NSInputStream *inputStream;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
forMode:NSRunLoopCommonModes];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
forMode:NSRunLoopCommonModes];
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
);
Input,OutputStream 委托没有调用。我做错了什么。
【问题讨论】:
【参考方案1】:你是否通过以下方式运行了当前的运行循环?
do
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]];
while (done == TRUE);
【讨论】:
【参考方案2】:您似乎省略了流的初始化,例如
NSInputStream *inputStream = [NSInputStream inputStreamWithURL: myURL];
NSOutputStream *outputStream = [NSOutputStream outputStreamToMemory];
【讨论】:
以上是关于背景上的 NSStream 没有调用的主要内容,如果未能解决你的问题,请参考以下文章
NSStream 和 Sockets,未调用 NSStreamDelegate 方法