ios - 升级到 Swift 2 后如何修复 IAP 代码?

标签 ios swift in-app-purchase swift2

我收到一条错误消息“无法使用类型为‘(productsIdentifier: Set)’的参数列表为类型‘SKProductsRequest’调用初始值设定项,我仍在尝试了解语法更改。有什么帮助吗?

 if(SKPaymentQueue.canMakePayments()) {

            let productID:NSSet = NSSet(objects: "com.organization.appname.iap")
            let request: SKProductsRequest = SKProductsRequest(productIdentifier: productID as Set<NSObject>)

            request.delegate = self
            request.start()
        }

最佳答案

将其转换为 Set<String>它将正常工作。

这是新代码:

let productID:NSSet = NSSet(objects: "com.organization.appname.iap")
let request: SKProductsRequest = SKProductsRequest(productIdentifiers: (productID as! Set<String>))

2.0 的语法已更改:

// request information about products for your application
@available(iOS 3.0, *)
public class SKProductsRequest : SKRequest {

    // Set of string product identifiers
    @available(iOS 3.0, *)
    public init(productIdentifiers: Set<String>)  //Set<NSObject> will not work anymore

    @available(iOS 3.0, *)
    unowned(unsafe) public var delegate: SKProductsRequestDelegate?
}

关于ios - 升级到 Swift 2 后如何修复 IAP 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32664579/

相关文章:

ios - 对于大片颜色,更便宜 : UIView or UIImage

ios - UIActivityIndi​​cator 显示一瞬间

ios - 如何通过在 swift 中实现观察者从 Firebase 实时数据库中获取嵌套数据

android - Google Play应用内结算v3,签名为空白

android - 在 Android 中实现应用内购买?

iphone - 正确存储应用内购买

ios - 使用 OCMock 模拟类选择器

c# - PushSharp 错误消息发送 IOS 推送通知

objective-c - 从另一个类访问 ccsprite

ios - 如何展开 - 在 Swift 中折叠 UITextView?