ios - 应用内购买 swift

标签 ios swift in-app

我第一次尝试在我的应用中添加应用内购买。 网上没有使用快速语言的指南。 所以我开始将 Obj-c 转换为 swift 但我不知道这行是什么意思以及如何将它转换为 swift。

proUpgradeProduct = [products count] == 1 ? [[products firstObject] retain] : nil;

来自本指南:http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/

摘录:

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response    
{
    NSArray *products = response.products;
    proUpgradeProduct = [products count] == 1 ? [[products firstObject] retain] : nil;
    if (proUpgradeProduct)
    {
        NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle);
        NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription);
        NSLog(@"Product price: %@" , proUpgradeProduct.price);
        NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier);
    }

    for (NSString *invalidProductId in response.invalidProductIdentifiers)
    {
        NSLog(@"Invalid product id: %@" , invalidProductId);
    }    

    // finally release the reqest we alloc/init’ed in requestProUpgradeProductData
    [productsRequest release];

    [[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerProductsFetchedNotification object:self userInfo:nil];
} 

如果有人知道 swift 中的应用内购买指南,那就太好了!

最佳答案

诀窍是知道错误在说什么,但它通过使用可选值正确输入内容来修复

var products = response.products
var proUpgradeProductOpt:SKProduct? = products.count == 1 ? products.first as SKProduct? : nil
if let proUpgradeProduct = proUpgradeProductOpt {
    println("Product title: \(proUpgradeProduct.localizedTitle)")
    println("Product description: \(proUpgradeProduct.localizedDescription)")
    println("Product price: \(proUpgradeProduct.price)")
    println("Product id: \(proUpgradeProduct.productIdentifier)")
}

关于ios - 应用内购买 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25852902/

相关文章:

iOS:Skype 在 UIActivityViewController 中无法用于图像共享

ios - UITableView 在创建单元格时抛出 NSUnkownKeyException

IOS - 恢复应用内购买

objective-c - 从数组 objective-c 中提取特定键

ios - OpenGL ES 2.0 以多种分辨率缩放

ios - RealmSwift/Object.swift + 顶层不允许使用表达式

ios - 如何在小游戏中正确复用UIView?

ios - 在 swift 表格 View 中选择字母部分的事件生成

Android应用内购买,取消订单

android - InAppBilling v3 IabResult 响应代码 BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED