gpt4 book ai didi

iphone - 检测并防止旧版 iOS 上的崩溃(怀疑 EventKit)

转载 作者:行者123 更新时间:2023-11-29 05:06:47 25 4
gpt4 key购买 nike

亲爱的学者们。我使用最新的 SDK (4.2.1) 创建了一个简单的应用程序,它在所有 iOS 4.x.x 设备上运行顺利且无错误。

最近,我收到一些使用较旧 iOS 版本的用户的评论,提示应用程序在启动时崩溃,在 Apple 的崩溃日志中我什么也没看到。继续我的调查,目前我唯一的怀疑是使用了 EventKit 类,如果没记错的话,这个类是在 iOS4 之后才引入的。

我在我的一个类中很少使用它,它在 iOS4.2.1 上完美运行

#import <EventKit/EventKit.h>

//稍后

[self setADateInCal: [MyTimeArray objectAtIndex:0] :formatterDate];   

因此我的问题:

  1. 这可能是导致我的应用程序在 iOS < 4 上崩溃的问题吗?

  2. 如何在不放弃 iOS4 用户的功能的情况下阻止它

  3. 一般来说,我如何测试这个?我的设备和 SDK 上有最新的官方 iOS,模拟器在重新升级到 iOS 版本时受到限制...有什么神奇的方法可以做到这一点吗?

最佳答案

1.) 是的。如果它不在 <4.0 中的 API 中,那么任何未运行 >4.0 的人都会崩溃。

2.) 使用 NSClassFromString(例如 Google)测试该类是否可用,并相应地 respondsToSelector 来查看您想要的方法是否可以在客户端运行的操作系统版本中使用。您可能还需要弱链接 EventKit 框架(再次 Google 了解如何执行此操作)。

3.) 测试这一点的唯一真正方法是将设备保持在您要测试的操作系统上。就我个人而言,我有一台旧 iPhone,我从来没有更新过运行 3.1.3 的版本,就像这样。或者,您可以将 xcode+iOSSDK 的旧安装保留在不同的分区或其他东西上,并使用它们的模拟器。 (我想对于 future 的更新,因为你显然没有为 <4.0 做过这个)。但不,没有什么神奇的方法可以做到这一点。抱歉。

编辑清楚第二点:基本上,您将检查您想要的类/方法是否在您当前运行的操作系统版本上可用,如果是,您可以使用它,如果不是,您将必须找到一个变通办法(完全省略或以与旧版本兼容的其他方式进行)。

关于iphone - 检测并防止旧版 iOS 上的崩溃(怀疑 EventKit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4717946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com