UIPasteboard大小

3

自iOS4+以来,此内容已不再相关 - 请停止投反对票!或者至少解释一下你的反对意见。

我正在尝试为应用程序的Lite版本升级到完整版本,该版本可以存储无限量的数据(我不想使用应用内购买)。

我希望能够使用自定义URL进行升级,而无需在线缓存数据。

因此,我考虑使用UIPasteboard对象。

有人知道或者进行过关于存储到UIPasteboard中的最大可能数据大小的调查吗?似乎没有苹果文档提供相关信息。

这会因设备而异吗?即是否受RAM限制?

我尝试了一个50MB的文件,但是失败了(即使在模拟器中),但5MB的文件没问题。在使用dataForPasteboardType:获取数据之前,没有办法知道它是否失败:

此外,有人做过两个应用程序自定义URL,可以进行请求/响应的应用程序间通信吗?我想通过这种方式支持任意大小的数据...


最好不要在你的问题中另外提问。 :-) - Craig
2个回答

6

经过一番调查后,我将回答自己的问题:它是8MB。不受设备影响。

我还通过两个自定义URL和递归使用openURL方法在应用程序之间支持任意大量数据的升级。测试了100MB,但它看起来并不太好,因为它会打开每个应用程序12次!


不要在你的答案中发布问题。 :-) - Craig

1
我很惊讶居然有任何限制。我不明白为什么/如何会有限制。你向UIPasteboard提供包含对数据的保留指针的字典。谁在乎它有多大?我怀疑如果你检测到限制,那么它实际上是NSString、NSData或者你提供给UIPasteboard的任何其他对象的大小限制。

1
这项调查我做了一段时间了,我的理解是字典必须进行深拷贝到共享内存中(字典必须符合标准的属性列表格式),因为每个应用都处于沙盒环境中 - 否则这可能是访问另一个应用程序受保护的内存空间的一种方式... (但你是正确的,我传递的是NSData对象,因为我正在复制文件)。 - Nick Hingston
有人能确认一下这是深拷贝还是浅拷贝吗?谢谢! - Ravindranath Akila

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接