2014-11-06 21 views
0
yourLabelName.text = [[NSString] stringWithFormat:@"The number of votes for Crepes is %d", voteCount1["votes"]]; 

我想重寫上面的代碼行到Swift中,因爲它目前寫在Objective-C中。爲了上下文的緣故,我試圖在列標題「VoteCount」下的Parse數據庫中檢索一個值,它恰好是類名。這裏是一個包含所有列的變量:如何將此Objective-C行重新寫入Swift?

var voteCount1 = PFObject(className: "VoteCount") 
    voteCount1["votes"] = 0 
    voteCount1["optionName"] = "crepes" 
+0

labelName.text =的NSString(格式爲:「票的用於薄餅的數量是%d 「」,voteCount1 [「votes」]) – 2014-11-06 08:40:13

回答

1

更新答案:

採取蒂洛的評論進去...怎麼樣:

var voteCount1 = PFObject(className: "VoteCount") 
let optionName = voteCount1["optionName"]; 
let votes  = voteCount1["votes"] as String; 

yourNameLabel.text = "The number of votes for \(optionName) is \(votes)" 

原來的答案:

我認爲它笑ULD是這樣的:

var voteCount1 = PFObject(className: "VoteCount") 
yourNameLabel.text = 
    "The number of votes for \(voteCount1["optionName"]) is \(voteCount1["votes"])" 
+0

唯一的問題是括號內的引號與整個引號之外的引號衝突。 XCode似乎無法區分它們,並且我嘗試以幾種不同的順序編寫代碼。 – ansariha 2014-11-06 00:45:40

+1

你可以避免這個問題,並通過增加兩個'let'來存儲optionName和投票來增加易讀性。 – Thilo 2014-11-06 00:52:49

+0

您是否在var voteCount1 = PFObject(className:「VoteCount」)下面添加了「yourNameLabel.text」多餘的所有其他變量? – ansariha 2014-11-06 00:53:18

0

的夫特String類型具有一個初始化就像[NSString stringWithFormat:]工廠方法:

yourLabelName.text = String(format: "The number of votes for Crepes is %d", voteCount1["votes"]) 
+1

您可能希望將'voteCount1 [「votes」]投射到'NSNumber'或'Int'? – rintaro 2014-11-06 02:46:27

+0

@rintaro:它符合OP的代碼所說的內容。如果OP的代碼是正確的,那麼'voteCount1 [ 「票」]'已經是'int' – newacct 2014-11-06 20:59:08

+0

'字符串(格式爲: 「%@」,voteCount1 [ 「票」]作爲NSNumber的)'就OK了,還'(格式:「%d」,voteCount1 [「votes」]作爲Int)'。但是** not **'(format:「%d」,voteCount1 [「votes」])',因爲'PFObject'的'subscript'返回'AnyObject!',在這種情況下它實際上是'NSNumber'。它有2個問題1)它使得編譯器與init(_:String,locale:NSLocale,_:CVarArgType ...)混淆,2)'%d'的'NSNumber'不合適。 – rintaro 2014-11-07 01:42:01