gpt4 book ai didi

ios - respondsToSelector 但选择器无法识别

转载 作者:技术小花猫 更新时间:2023-10-29 10:48:47 24 4
gpt4 key购买 nike

我正在按照苹果的示例代码来了解如何在 iOS 7 下实现收据验证,并且它有效,除非我在 iOS 6 下运行以下代码(基本上逐字地从他们的示例中获取)

NSBundle *bundle =[NSBundle mainBundle];
if ([bundle respondsToSelector:@selector(appStoreReceiptURL)]) { // can do local device receipt validation
NSURL *receiptURL = [bundle performSelector:@selector(appStoreReceiptURL)];
}

它对选择器的响应返回 true,因此尝试执行选择器,此时它崩溃了,因为选择器不存在……为什么我对一个不存在的选择器得到肯定响应?

最佳答案

appStoreReceiptURL 的文档说明此方法在 iOS 7 之前作为私有(private)方法存在,并且它在 iOS 7 之前的实现调用 doesNotRecognizeSelector:。因此,您不能使用 respondsToSelector: 来检查是否可以调用该方法。

相反,您需要检查系统版本:

NSString *version = [UIDevice currentDevice].systemVersion;
if ([version compare:@"7.0" options:NSNumericSearch] != NSOrderedAscending) {
// safe to use appStoreReceiptURL
} else {
// not safe to use appStoreReceiptURL
}

关于ios - respondsToSelector 但选择器无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18837388/

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