ios - Why can't I save my in app purchase? -


first let me sorry code....i wanted make sure included of code can see if im doing wrong. game has in app purchase unlock levels. when go buy level 2 works when quit app , go level 2 in app purchase gone. why happen? don't know why not saving in app purchase see wrong code. please let me know if don't understand im saying , ill try explain better. thanks!

edit:

override func didmovetoview(view: skview) {      if unlockleavel2 {             let unlockleavel2 = nsuserdefaults().boolforkey("leavel2")         unlockleveltwo()      }     }   func unlockleveltwo() {      let fadein = skaction.fadeinwithduration(1.0)      leveltwo.position = cgpointmake(self.size.width / 2.0, self.size.height / 2.2)     leveltwo.zposition = 20     leveltwo.setscale(0.8)     leveltwo.alpha = 0     leveltwo.hidden = false     leveltwo.runaction(fadein)     leveltwo.name = "leveltwo"     addchild(leveltwo)    }  func unlocklevel() {     if skpaymentqueue.canmakepayments() {         var productid:nsset = nsset(object: "unlockleveltwo")         var productsrequest:skproductsrequest = skproductsrequest(productidentifiers: productid set<nsobject>)         productsrequest.delegate = self         productsrequest.start()         println("fetching products...")     }     else {         println("can't make purchases")     } }   func paymentqueue(queue: skpaymentqueue!, updatedtransactions transactions: [anyobject]!) {     println("received payment transaction response apple");      transaction:anyobject in transactions {         if let trans:skpaymenttransaction = transaction as? skpaymenttransaction{             switch trans.transactionstate {             case .purchased:                 println("product purchased");                 skpaymentqueue.defaultqueue().finishtransaction(transaction as! skpaymenttransaction)                 nsuserdefaults().setbool(true, forkey: "leavel2")                 unlockleveltwo()                 break;             case .failed:                 println("purchased failed");                 skpaymentqueue.defaultqueue().finishtransaction(transaction as! skpaymenttransaction)                 break;             case .restored:                 println("already purchased");                 skpaymentqueue.defaultqueue().restorecompletedtransactions()              default:                 break;             }         }     } }   override func touchesbegan(touches: set<nsobject>, withevent event: uievent) {        var touch: uitouch = touches.first as! uitouch     var location = touch.locationinnode(self)     var node = self.nodeatpoint(location)     if node.name == "unlockleveltwobutton" {          if defaults.boolforkey("unlocktheleveltwo") == false {             skpaymentqueue.defaultqueue().addtransactionobserver(self)             runaction(menuaudioplayer)             unlocklevel()         }      } 

your unlockleveltwo() function adjusting game data in current session , data not persist between sessions.

in order save state, can make use couple of functions primary nscoding,nsuserdefaults or coredata persist game data.

to save

let save = nsuserdefaults.standarduserdefaults() save.setvalue(yourvariable, forkey: "someuniquekey")  save.synchronize() // makes ur data persist between sessions 

to load

if let data = save.valueforkey("someuniquekey") {     // data here } else {     // got no data } 

Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -