ios - 通过应用内购买去除广告时,此功能是否无法识别我的 key ?

标签 ios swift ads storekit

广告效果很好。但是,当我添加 if else 语句以确定用户是否付费删除广告时,即使他们没有付费删除广告,广告也不会弹出。我得到的唯一打印语句是“它叫什么”,所以我觉得“已购买”键有问题。我检查以确保它们匹配。我是不是对 key 做错了什么?

func showAd() {

    if let purchased = UserDefaults.standard.value(forKey: "Purchased") as? Bool{
        if purchased == true{
            interstitial = nil
            print("there is no ad!!!!")
        }else{
            self.interstitial = createInterstitialAd()
            print("there is an ad!!!")
        }
    } else {
        print("it called something")
    }

}

编辑:这是我设置 key 的代码。

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction in transactions{
        if transaction.transactionState == SKPaymentTransactionState.purchased{
            //User Payment Successfull
            UserDefaults.standard.set(true, forKey: "Purchased")
            print("payment was successfull")
            SKPaymentQueue.default().finishTransaction(transaction)
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let controller = storyboard.instantiateViewController(withIdentifier: "homeVC")
            self.navigationController?.pushViewController(controller, animated: true)

        }else if transaction.transactionState == .failed{
            //User Payment failed
            print("transaction failed...")
            SKPaymentQueue.default().finishTransaction(transaction)
            if let error = transaction.error {
                print("\(error.localizedDescription)")
            }
        } 
    }
}

最佳答案

改变这一行:

if let purchased = UserDefaults.standard.value(forKey: "Purchased") as? Bool

收件人:

if let purchased = UserDefaults.standard.bool(forKey: "Purchased")

这使得 purchased 不是可选的。这样 if purchased 总是会被调用。

事实上,我会去掉 if let 因为它不能为 nil:

let purchased = UserDefaults.standard.bool(forKey: "Purchased")

关于ios - 通过应用内购买去除广告时,此功能是否无法识别我的 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54641851/

相关文章:

ios - 只在主线程运行异常

ios - iPhone在不同端口上意外复制TCP数据包

Swift - 核心数据中的一对多关系

objective-c - 删除 admob 上的测试广告

ios - 在 iOS 中从 NSDictionary 生成 JSON 字符串

ios - 如何检测何时使用 MKUserTrackingBarButtonItem

ios - 我实现了 editActionsForRowAtIndexPath 和 commitEditingStyle 但在滑动单元格时 tableViewCell 上没有出现任何编辑操作

ios - 是否可以使用一个相等的对象字段在包含对象的数组上使用包含?

android - 来自android应用的收入

android - 何时何地在 Android 应用程序中显示广告