【问题标题】:What is the maximum number of regions that can be monitored with startMonitoringForRegion:region desiredAccuracy:accuracy?使用 startMonitoringForRegion:region desiredAccuracy:accuracy 可以监控的最大区域数是多少?
【发布时间】:2012-02-02 18:45:23
【问题描述】:

文档说可以监控的区域数量是有限的-

(void)startMonitoringForRegion:(CLRegion *)region desiredAccuracy:(CLLocationAccuracy)accuracy

但我找不到那个限制是什么,有人知道吗?

【问题讨论】:

    标签: iphone ios core-location cllocationmanager


    【解决方案1】:

    我已经探索过几次,Apple 故意不说。设备的所有区域都进入一个巨大的受监控区域池。因此,您添加的任何区域都必须与其他应用程序共享。我认为我听到的成功监测的最多是 20 个。但这不是一门精确的科学。如果其他应用程序需要添加新区域,操作系统将清除所有旧区域。同样,您的应用也可以为其他应用推出区域。

    如果有一些定义更好的文档肯定会很好。如果您下载控制台应用程序,并从您的应用程序中添加一堆区域并说通知,则会有一个显示日志显示您非常频繁地运行的区域计数。删除一个区域,您可以看到计数下降。如果您想测试可以安全添加多少个区域,可能会有所帮助。祝你好运。

    【讨论】:

    • 20 个区域记录在 iOs 6 的 startMonitoringForRegion developer.apple.com/library/ios/#documentation/CoreLocation/…
    • 哇!那是以前不存在的。至少在 iOS 6 之前没有。很好的发现。
    • 我在 iOS8 iphone 5s 上做了一些测试。一旦达到 20 个区域,您将不再设置。旧地区不会被驱逐。此外,如果有人好奇(因为文档对此不明确),您可以设置 20 个 BeaconRegions 和 20 个 CircularRegions。
    • 真的吗?!?!这是个好消息。我假设您总共只有 20 个,因为它们几乎相同。很好的收获。
    • documentation读到,它说:“在指定要监视的区域集时要谨慎。区域是共享的系统资源,系统范围内可用的区域总数是有限的。因此, Core Location 将单个应用程序可以同时监控的区域数限制为 20 个”。所以基本上你的应用程序不会将区域从另一个推出,他们的也不会......或者你是说文档是错误的?
    【解决方案2】:

    我一直在测试并得出了相同的结论。出于某种原因,最大值为 20 个受监控的区域。

    【讨论】:

      【解决方案3】:

      文档中明确提到最大区域为 20。

      Link

      【讨论】:

        【解决方案4】:

        我认为允许的区域是 10 到 20。

        【讨论】:

        • @PranavSingh:为什么不呢?
        【解决方案5】:

        从 iOS 9.2.1 开始,20 个区域的限制没有变化。值得指出的是,前 20 个被存储而不是被覆盖。如果尝试添加更多,这些将被忽略。

        【讨论】:

          【解决方案6】:

          仅供参考:

          • startMonitoringForRegion:desiredAccuracy: 已弃用。

          swift 中没有这样的 API。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-12-14
            • 1970-01-01
            • 2015-08-20
            • 2011-07-19
            • 2010-11-26
            • 2010-12-02
            • 2014-01-17
            • 2014-02-17
            相关资源
            最近更新 更多