未正确退出应用程序时未关闭 OutputStream 文件

Posted

技术标签:

【中文标题】未正确退出应用程序时未关闭 OutputStream 文件【英文标题】:Not closing OutputStream file when not exiting App properly 【发布时间】:2017-11-07 20:24:37 【问题描述】:

例如: 如果在应用程序进入后台并且(例如)从 Xcode 运行时关闭了到文件的 OutputStream,或者如果应用程序崩溃并且 OutputStream 永远不会关闭。

任何可能的泄漏?当运行循环终止时,进程是否终止?

也就是说,不关闭一个OutputStream会不会导致超出App生命范围的系统泄漏?

【问题讨论】:

【参考方案1】:

我假设您引用的是 NSOutputStream 或其系列 NSStreams。

如果您的应用程序被杀死,您为什么会有“泄漏”甚至关心泄漏?流就像文件句柄,与您的进程相关联。关于进入后台的应用程序,流可能会变得陈旧,但您应该收到一条消息 streamError 给您的代表

- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode

您可以在此处查看文档 https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Streams/Articles/WritingOutputStreams.html

【讨论】:

谢谢!是的,OutputStream 是 Obj-C 的 NSOutputStream 的 Swift 等价物。文档没有提到不关闭流的后果。

以上是关于未正确退出应用程序时未关闭 OutputStream 文件的主要内容,如果未能解决你的问题,请参考以下文章