NSSet动态对象 - Swift

时间:2014-11-10 17:40:55

标签: ios swift syntax in-app

我在第一个Swift项目中处理了我的第一个应用程序内购买设置。我试图从我的UserDefaults获取一个应用程序内捆绑字符串,而不是将其作为固定字符串烘焙,但我收到错误"致命错误:在展开时意外发现nil可选值"

我从UserDefaults调用我的变量,如下所示:

var bundleIdentity : AnyObject!

NSUserDefaults.standardUserDefaults().synchronize()
    var userDefaults = NSUserDefaults.standardUserDefaults()

    if let myBundle: AnyObject? = userDefaults.objectForKey("bundle") {
        bundleIdentity = myBundle as String
    }

现在,我尝试在我的" getProductInfo"中使用它。 FUNC:

func getProductInfo(){
    if SKPaymentQueue.canMakePayments(){
        let productID:NSSet = NSSet(object:self.bundleIdentity!)
        let request:SKProductsRequest = SKProductsRequest(productIdentifiers: productID)
        request.delegate = self
        request.start()
    }
}

我知道" bundleIdentity"因为我可以打印它作为一个字符串,但我很困惑为什么我不能在NSSet中使用它(对象:self.bundleIdentity!)并得到错误。

任何帮助都会非常感激,因为我还是Swift的新手!

由于

1 个答案:

答案 0 :(得分:0)

您已将bundleIdentity声明为可选(使用?),然后您告诉机器它肯定有值(使用!)。因为你撒谎而发脾气。