ios - 通过 WatchConnectivity 发送数据时有效载荷有多大?

标签 ios ios9 watchos-2 watchconnectivity wcsession

当使用 WatchConnectivity 框架发送数据时,无论是从手机到 watch 还是反之亦然,在框架给我 WCErrorCodePayloadTooLarge 错误之前负载有多大?

我无法在 Apple 的文档中找到答案,而且目前互联网上似乎没有太多这方面的信息(事实上,谷歌搜索 WCErrorCodePayloadTooLarge 只给我 4 个结果).

有没有人测试过试图找到这个问题的答案?如果这个问题没有得到答案,我会尝试自己做并发布结果。

到目前为止,我所掌握的所有信息是它可能能够支持大于 30 MB 的文件。我想这是因为我在 iPhone 上拍了很多原始照片,它们的大小通常约为 36MB,而且它们总是显示在我 watch 的照片应用中。

供引用,WCSession的文档对 WCErrorCodePayloadTooLarge 的描述如下:

An error indicating that the item being sent exceeds the maximum size limit. This type of error can occur for both data dictionaries and files.

Available in watchOS 2.0 and later.

最佳答案

根据私有(private)符号WCPayloadSizeLimitApplicationContextWCPayloadSizeLimitMessageWCPayloadSizeLimitUserInfo,限制(自iOS 9.0.2起)为:

  • 一条消息 65,536 字节 (65.5 KB)
  • 65,536 字节 (65.5 KB) 的用户信息
  • 262,144 字节(262.1 KB)用于应用程序上下文

我不知道为什么 Apple 不记录这一点,除了通过 WatchConnectivity 发送字典时很难确定它们到底有多大这一事实。当然,可接受的尺寸可能会随着时间而改变。

我在发送文件时找不到(也没有亲自观察到)任何最大大小限制,但我注意到当您发送大文件(数百 MB)时它似乎变得不可靠。

关于ios - 通过 WatchConnectivity 发送数据时有效载荷有多大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33025915/

相关文章:

ios - 已解析的 JSON 数据未打印到控制台

ios - 如何防止我不知道的对象上的 EXC_BAD_ACCESS 在 iOS 9 中发布?

iOS 9 PHAssetChangeRequest 创建RequestForAssetFromVideoAtFileURL : fails with error code -1

ios - 找不到 'WCSessionDelegate' 的协议(protocol)声明

xcode - 使用 xCode 7.3 将 Worklight 6.1 添加到 watch OS 2.1 时出现问题

xcode - WatchKit 无效的二进制文件

javascript - 有没有办法从服务器更新 iOS 应用程序中的 javascript 文件?

ios - flutter 错误 : no such module 'GoogleMaps'

ios - 如何将单个字符转换为 NSString?

objective-c - AVPlayer 不播放音频 - iOS 9,Objective - C