避免在 iOS 中找不到选择器
avoiding selector not found in iOS
我下载了一个日历教程,运行 它的部署目标是 iOS 6.1,运行 它在模拟器中,一切顺利。我将它加载到 iOS 6.1 设备上,它因 "selector not found"
而崩溃
它使用'startOfDayForDate'
return [[NSCalendar currentCalendar] startOfDayForDate:self.start];
这在 iOS 6.1 测试设备上崩溃但它在模拟器中工作,即使我的部署目标是 iOS 6.1.
我使用了 instancesRespondToSelector 并发现它没有响应。
我列出了这些方法,发现当我 运行 与模拟器相比,我在设备上使用相同的程序时,方法少了大约 30 个。
注意其他设置相同
问。怎么设置模拟器模拟某个OS?
是否有一些我没有看到的隐藏设置会导致模拟器从不同版本的 iOS 加载方法?
查看文档 here 似乎此方法仅在 iOS 8.0 及更高版本中受支持,这就是为什么这会在您的 iOS 6.1 设备上崩溃。
您可能 运行 是 iOS 8.0 以上版本的模拟器。
如果您是 运行 xCode 6.0 或更高版本,您可以下载的最早模拟器是 iOS 7。这更好地描述了 here
我下载了一个日历教程,运行 它的部署目标是 iOS 6.1,运行 它在模拟器中,一切顺利。我将它加载到 iOS 6.1 设备上,它因 "selector not found"
而崩溃它使用'startOfDayForDate'
return [[NSCalendar currentCalendar] startOfDayForDate:self.start];
这在 iOS 6.1 测试设备上崩溃但它在模拟器中工作,即使我的部署目标是 iOS 6.1.
我使用了 instancesRespondToSelector 并发现它没有响应。 我列出了这些方法,发现当我 运行 与模拟器相比,我在设备上使用相同的程序时,方法少了大约 30 个。
注意其他设置相同
问。怎么设置模拟器模拟某个OS?
是否有一些我没有看到的隐藏设置会导致模拟器从不同版本的 iOS 加载方法?
查看文档 here 似乎此方法仅在 iOS 8.0 及更高版本中受支持,这就是为什么这会在您的 iOS 6.1 设备上崩溃。
您可能 运行 是 iOS 8.0 以上版本的模拟器。
如果您是 运行 xCode 6.0 或更高版本,您可以下载的最早模拟器是 iOS 7。这更好地描述了 here