0
- (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 委托没有调用。我做错了什么。

4

2 回答 2

0

您是否通过以下方式运行当前运行循环?

 do {

    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]];
  } while (done == TRUE);
于 2010-12-18T08:10:56.637 回答
0

您似乎省略了流的初始化,例如

NSInputStream *inputStream = [NSInputStream inputStreamWithURL: myURL];
NSOutputStream *outputStream = [NSOutputStream outputStreamToMemory];
于 2010-12-18T10:14:35.410 回答