2016-07-12 8 views
1

私のアプリ用のアプリ内バージョンを実装したかったのですが、なぜ機能していないのかわかりません。出力が正常に追加されましたが、私のXcodeからpListファイルを開くと、そのファイルは変更されませんでしたか?それはなぜです?ここに私のコードは次のとおりです。Plist値を変更しない[迅速]

func version(){ 

    let urlString = jocomAPIKey + "/feed/version" 
    let CFBundleShortVersionKey = "CFBundleVersion" 

    //First get the nsObject by defining as an optional anyObject 
    let nsObject: AnyObject? = NSBundle.mainBundle().infoDictionary!["CFBundleVersion"] 
    let version = nsObject as! String 
    print("app version: \(version)") 


    Alamofire.request(.POST, urlString , parameters: ["os" : "iphone"]) 

     .responseData { response in 

      let versionXML = SWXMLHash.parse(response.data!) 
      let versionString = (versionXML["rss"]["channel"]["item"]["version"].element?.text) 
      print("version string: \(versionString)") 

      if let plist = Plist(name: "Info") { 

       let dict = plist.getMutablePlistFile()! 
       dict[CFBundleShortVersionKey] = versionString 
       //3 
       do { 
        try plist.addValuesToPlistFile(dict) 
        print("added") 
       } catch { 
        print(error) 
       } 
       //4 
       print(plist.getValuesInPlistFile()) 
      } else { 
       print("Unable to get Plist") 
      } 


     } 


} 

plist

+0

実行時にinfo.plist(アプリケーションバンドル内の他のファイルにも)に書き込むことはできません。 – vadian

+0

@vadianしかし、毎回ユーザーの更新を強制するために私自身のAPIバージョンを実装したいと思っていましたが、どうすればいいですか? plsは私に – mimi93

答えて

2

あなたは実行時に、あなたの(バンドルPLIST)を更新することはできません。あなたが使用したい場合は、operationを実行してDocument Directorycopyを1つだけ作成します。

Write and Read a plist in swift with simple data

+0

を案内しますが、毎回ユーザーの更新を強制するために私自身のAPIバージョンを実装したいのですが、どうすればいいですか? pls guide me私は – mimi93

+0

文書のディレクトリにバンドルplisをコピーすると、あなたのapiのバージョンを確認したり更新したりすることができます。 –

+0

あなたはplistファイルを新しいplistファイルにコピーすることを意味しますか?私だけがplistを読み書きできますか? – mimi93

0

Appleがアプリで、実行時にInfo.plistの更新を更新することができません。