问题标签 [nsfilehandle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
459 浏览

iphone - 逐步写入文件时优化内存消耗

我一直在做一些测试,我的一个需求是从不同的 xml 文件中读取数据并将其堆叠在一个文件中。虽然我已经设法做到这一点,但该任务的内存消耗似乎相当大,iphone模拟器甚至没有发出内存警告,但我认为真正的 iPhone 不会容忍这一点(我没有一个在这里尝试的设备,所以我主要是从我读过的内容中推测)。
(主要部分)代码如下:

使用“构建和分析”命令没有给我任何泄漏或任何东西,并且代码在构建时不会发出警告,但内存消耗仍然在 50 到 70mb 之间(仅考虑实时字节,总体而言它几乎翻了一番)。
这个想法显然不是读取同一个文件的 100 次,但作为测试数据,它已经足够了,因为代码必须从 xml 文件中读取内容并按照接收顺序将它们发送到文件中。

有什么方法可以在分配新对象之前强制释放一些临时对象,我可以尝试重用一些变量吗?任何可以帮助我控制它的想法都非常受欢迎。

编辑- 只是为了让事情变得更有趣:最好保留一个解析器来读写,最好是坚持使用 GDataXML,或者,如果需要更改,使用 KissXML、TinyXML或 libxml - DOM,它们似乎都占用了更多内存,如此所述,因此如果有一种方法可以强制释放内存,那将是最好的。

提前致谢 :)

0 投票
1 回答
58 浏览

objective-c - 可可创建文件路径

我正在尝试在 mac os 上创建一个文件。应用程序将访问文件中的数据。但是如何创建一个对所有帐户都具有读取权限的文件。目前该应用程序只能读取管理员帐户中的数据。我正在使用以下语法:

BOOL B = [fm createFileAtPath:p1 contents:data attributes:nil];

它是否与属性有关,以便所有用户都可以阅读但只能由管理员修改。

谢谢你。

这是 ls -dl 的输出

是不是因为我在系统/库中创建文件,如果是这样,这是创建文件的最佳位置,以便所有用户都可以读取它,但只能由管理员修改。

谢谢你

0 投票
2 回答
13714 浏览

cocoa-touch - NSFileHandle fileHandleForWritingAtPath: 返回 null!

我的 iPad 应用程序有一个小型下载工具,我想使用 NSFileHandle 附加数据。问题是创建调用只返回空文件句柄。可能是什么问题呢?这是应该创建我的文件句柄的三行代码:

我检查了文件路径,我看不出有什么问题。

TYIA

0 投票
11 回答
47418 浏览

objective-c - 如何逐行从 NSFileHandle 读取数据?

我有一个包含给定数据的文本文件

例如

现在我想逐行读取数据。这意味着首先我想阅读

然后下一个。有人知道吗?

0 投票
2 回答
1468 浏览

objective-c - Xcode 应用程序版本与 Mac OS X 版本不兼容

我正在使用 Os X 10.6.4 和 X 代码版本 3.2.3 开发一些简单的应用程序文件并使用 PackageMaker 分发这些应用程序文件。但是,当尝试在其他 Mac 上运行该软件包时,我收到错误消息,即该软件包与 Os X 不兼容,它的运行和文件将不会被安装。这是 X 代码或软件包制造商的问题。很抱歉重新发布它,但虽然我尝试将基本 SDK 更改为 10.5,但它在我用于开发的 mac(Mac OS X 10.6.4)上编译并运行良好,但是当安装在运行 OS X 10.5 的 mac 上时,.app 文件是变灰并弹出消息说“您不能将此版本的应用程序与此版本的 Mac 一起使用”。知道为什么会这样吗?同样如前所述,我使用 IBOutlet 从表单中接受用户日期,然后将其写入文本文件。

0 投票
2 回答
4815 浏览

iphone - 使用 NSData 块的 Base64 编码文件

更新 4
根据 Greg 的建议,我创建了一对图像/文本,使用 100k 块显示从 37k 图像到 base64 编码的输出。由于文件只有 37k,可以肯定地说循环只迭代了一次,所以没有附加任何内容。另一对使用 10k 块显示从相同 37k 图像到 base64 编码的输出。由于文件为 37k,因此循环迭代了四次,并且肯定附加了数据。

对这两个文件进行比较表明,在 10kb 的块文件上,从第 214 行开始到第 640 行结束的差异很大。

更新 3
这是我的代码现在所在的位置。清理了一下,但仍然产生相同的效果:

更新 2
所以看起来大于 100 KB 的文件会被打乱,但 100 KB 以下的文件很好。很明显,我的缓冲区/数学/等有问题,但我迷失了这个。可能是时候收工了,但我很想在解决这个问题后睡觉。

这是一个例子:

更新 1
在做了一些测试后,我发现相同的代码适用于小图像,但不适用于大图像或任何大小的视频。绝对看起来像一个缓冲问题,对吧?


嘿,尝试通过循环并一次执行一小块来对大文件进行base64编码。一切似乎都正常,但文件总是最终损坏。我很好奇是否有人能指出我在这里可能出错的地方:

0 投票
1 回答
4764 浏览

objective-c - NSFileHandle fileHandleForReadingFromURL 有人可以向我解释一下吗?

我正在尝试根据 Dave DeLong 的输入流制作自定义输入流它还允许通过 NSURL 从服务器读取数据。到目前为止,我有这种方法,它适用于本地文件:

而我的实现:

问题是,当我尝试像这样使用它时:

s将始终为空,因为NSFileHandle返回的[NSFileHandle fileHandleForReadingFromURL:remoteURL]似乎总是返回 nil,没有任何错误。

这是我的代码中的错误还是他们的未记录功能?

谢谢

0 投票
1 回答
209 浏览

iphone - 什么是插座、管道和设备?

我正在研究 Apple 的低级文件管理编程主题。在 NSFileHandle 部分,他们说:

NSFileHandle 的范围不限于文件。它提供了唯一可以读取和写入通信通道(例如由套接字、管道和设备实现的通道)的 Foundation 对象。

这听起来很不错!所以我可以通过 NSFileManager 与一个套接字通信,然后将这些数据传输到一个网络服务器,在那里我直接在一个文件中乱七八糟,通过远程?

有人可以举一些容易理解的例子吗?

  • 与“套接字”通信时?
  • 与“管道”通信时?
  • 与“设备”通信时?

注意:我对套接字、管道、设备一无所知。而且我确信设备并不意味着 iPhone 本身。我不熟悉网络的东西。但是我想学那些东西!!也许你也可以简单解释一下这些东西是什么?

0 投票
1 回答
1077 浏览

iphone - -fileHandleForWritingAtPath: 和 fileHandleForUpdatingAtPath: 之间的区别?

对我来说,这听起来是一样的。更新文件意味着写入文件。写入文件对我来说也是一个更新。但我想有一个微妙的区别;-)

有人知道吗?

0 投票
1 回答
174 浏览

iphone - 究竟什么是沟通渠道?

当我查看 NSFileHandle API 文档时,我看到有很多网络方法在谈论套接字之类的东西......

在顶部,他们说:

NSFileHandle 对象为访问打开的文件或通信通道提供了一个面向对象的包装器。

这里的“沟通渠道”是什么?有没有一些实际的例子可以为不是网络忍者的人解释它?