2016-09-23 118 views
0

我是swift的初學者,我遇到了將字符串轉換爲UInt32的問題。如何將字符串轉換爲UInt32?

let Generator = (ReadableJSON ["People"] [Person]["F1"].string! as NSString).doubleValue 

    if Generator == 1 { 

     NameLabel1 = ReadableJSON ["People"] [Person]["A1"].string as String! 
     NameImeNaObekt = ReadableJSON ["People"] [Person] ["B1"].string as String! 
     Picture = ReadableJSON ["People"] [Person] ["E1"].string as String! 

    } else { 

     let RGen = arc4random_uniform ("\(Generator)") // here is the error 

    } 

你會告訴我如何解決它。問題是在最後一行,它是紅色的,它說不能將String類型的值轉換爲UInt32。 主要想法是,我從JSON文件中讀取數字,並且必須將此數字填充到arc4random_uniform中。

+1

既然你在斯威夫特初學者請學會首先要考慮的命名慣例該變量名稱以小寫字母開頭。 – vadian

回答

1
arc4random_uniform(UInt32) 

接受UInt32的價值,但你傳遞一個字符串值,它

這是你的數字轉換爲字符串

"\(Generator)" 

的最後一行應該是這樣的

let RGen = arc4random_uniform (UInt32(Generator)) 

如果你想'RGen'是一個字符串,你可以這樣做

"\(RGen)" 
String(RGen) 
+0

生成器後面的數字應顯示爲arc4random_uniform – Dakata

+0

,因爲您的'Generator'爲double,所以您的代碼應該像這樣arc4random_uniform(UInt32(Generator)) – Arashk

-1
 var RGen= 0 

    let RGen =int(arc4random_uniform ("\(Generator)") ) 

或 讓RGen元=(arc4random_uniform( 「(生成)」)).toInt

Look here