2016-09-23 117 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