Objective-C / Cocoa:上传图像、工作内存和存储
Posted
技术标签:
【中文标题】Objective-C / Cocoa:上传图像、工作内存和存储【英文标题】:Objective-C / Cocoa: Uploading Images, Working Memory, And Storage 【发布时间】:2010-02-12 07:02:15 【问题描述】:我正在将最初在 java 中的应用程序移植到可可,但我正在重写它以使其更好,因为无论如何我更喜欢可可。
我在应用程序中遇到的一个问题是,当您将图像上传到它时,我已经创建了图像(例如 NSImage 对象),然后我只是将它们放在内存中,我上传的越多他们占用了更多的内存,最后我的内存用完了。
我的问题是:如果我要让用户在可可中将图像上传到这个应用程序,我应该如何存储它们?我不只是想复制文件路径,因为我希望保存的内容包含图像等。有没有办法上传图像并将其复制到仅用于我的应用程序的不同位置?然后根据需要使用新路径名加载该图像?
只有我希望将所有内容合并。我将通过将一个“主”对象归档到一个 NSData* 中来实现保存 - 所以我希望图像与它一起保存。
是否有一个临时位置,我可以将图像写入磁盘以供我的应用程序使用,然后当我保存时,它们会全部归档到一个文件中?另外,我该怎么做?谢谢。
【问题讨论】:
【参考方案1】:如果您只想临时存储图像,可以将图像存储在通过调用NSTemporaryDirectory()
获得的临时文件夹中。然后,您将能够仅在需要显示图像时加载它们。
如果您想将图像与文档一起保存,那么您应该研究为您的文档使用包格式,以便文档实际上是一个包含您的图像和存档数据文件的文件夹。您可以使用NSFileWrapper
的各种方法创建一个包含文档包的所有文件的文件包装器,然后您将实现NSDocument
的-fileWrapperOfType:error:
方法以处理保存。
这将允许您存储未更改的图像,然后在需要时从文档包中延迟加载它们。
【讨论】:
非常感谢!我真的很感谢你不遗余力地帮助我。这是完美的,解决了我的问题。谢谢!以上是关于Objective-C / Cocoa:上传图像、工作内存和存储的主要内容,如果未能解决你的问题,请参考以下文章
在 Objective-C 中使用 AFNetworking 上传图像时出错