Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 我如何传递应用内购买数据以观看?_Swift_In App Purchase_Watchconnectivity_Wcsession - Fatal编程技术网

Swift 我如何传递应用内购买数据以观看?

Swift 我如何传递应用内购买数据以观看?,swift,in-app-purchase,watchconnectivity,wcsession,Swift,In App Purchase,Watchconnectivity,Wcsession,我的Apple Watch应用程序有一部分位于付费墙后面,但我无法从WCSessiontransferUserInfo会话中提取信息 此外,由于手表上没有可用的NSUserDefault,我如何将这些数据存储在手表应用程序上 这是我的代码,它确实打开了会话,但没有正确地传递数据: 视图控制器 //This creates the dictionary that will be passed to the Watch var WatchInAppPurchases = ["product

我的Apple Watch应用程序有一部分位于付费墙后面,但我无法从WCSession
transferUserInfo
会话中提取信息

此外,由于手表上没有可用的NSUserDefault,我如何将这些数据存储在手表应用程序上

这是我的代码,它确实打开了会话,但没有正确地传递数据:

视图控制器

//This creates the dictionary that will be passed to the Watch
var WatchInAppPurchases = ["product1":Bool(), "product2":Bool(),]    
func dictionaryCreator() {
        if (UserDefaults.standard.value(forKey: "product1purchased") != nil) == true {
            WatchInAppPurchases["product1"] = true
        } else {
            WatchInAppPurchases["product1"] = false
        }
        if (UserDefaults.standard.value(forKey: "product2purchased") != nil) == true {
            WatchInAppPurchases["product2"] = true
        } else {
            WatchInAppPurchases["product2"] = false
        }
    }


//This runs both with the .purchased and .restored function.
    func syncronizeWatch() {
        if WCSession.isSupported() {
            let session = WCSession.default
            session.delegate = self
            session.activate()

            session.transferUserInfo(WatchInAppPurchases)
        }
    }
接口控制器:

   func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
        NSLog("%@", "activationDidCompleteWith activationState:\(activationState) error:\(String(describing: error))")
    }
    
    var userinfo0 : Bool?
    var userinfo1 : Bool?
    
    
    func session(_ session: WCSession, didReceiveUserInfo userInfo: [String : Any] = [:]) {
        let userinfodic = userInfo 
        userinfo0 = userinfodic["product"]!
        userinfo1 = userinfodic["product2"]!
    }
运行此操作后,如何支持我正确存储此数据?

if userInfo0 {
//show paid content?
}