Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios “与”的区别是什么;“作为字符串”;及;stringvalue“;斯威夫特?_Ios_String_Swift_Typecasting Operator - Fatal编程技术网

Ios “与”的区别是什么;“作为字符串”;及;stringvalue“;斯威夫特?

Ios “与”的区别是什么;“作为字符串”;及;stringvalue“;斯威夫特?,ios,string,swift,typecasting-operator,Ios,String,Swift,Typecasting Operator,我有一个密码: var i : AnyObject! i = 10 println(i as String) println(i.stringValue) 它在上以字符串的形式崩溃,但在第二行i.stringValue中运行 在上面几行中,asString和stringValue之间有什么区别?都将Int转换为String,但这将不再有效。 在Swift 2中,这样做是不可能的 你应该使用: let i = 5 print(String(format: "%i", i)) 这将特别地将int

我有一个密码:

var i : AnyObject!
i = 10
println(i as String)
println(i.stringValue)
它在
上以字符串的形式崩溃,但在第二行
i.stringValue
中运行


在上面几行中,as
String
stringValue
之间有什么区别?

都将Int转换为String,但这将不再有效。 在Swift 2中,这样做是不可能的

你应该使用:

let i = 5
print(String(format: "%i", i))

这将特别地将int值写为字符串

。stringValue
是一种将整数提取为字符串值的方法,但是
作为字符串
将不起作用,如果您使用
作为字符串
,那么Xcode将强制您添加
作为
进行编码,这样做不好,而且永远不会成功,会使你的应用程序崩溃。您不能将
Int
强制转换为
String
。它总是会失败。这就是为什么当你做
as!String
它会使应用程序崩溃

所以在这里选演员不是个好主意

这里还有一些将整数提取为字符串值的方法:

let i : Int = 5 // 5

let firstWay = i.description // "5"
let anotherWay = "\(i)"      // "5"
let thirdWay = String(i)     // "5"
这里不能使用
let fortwway=i.stringValue
,因为Int没有名为
stringValue

但您可以对
任何对象执行相同的操作,如下所示:

let i : AnyObject = 5 // 5

let firstWay = i.description // "5"
let anotherWay = "\(i)"      // "5"
let thirdWay = String(i)     // "5"
let forthway = i.stringValue // "5"  // now this will work.

使用
as String
,您不能强制转换值,但是您定义变量包含
String
,但在您的情况下,它是
Int
。因此它会崩溃

而另一种方法,即
i.stringValue
将您的值转换为
String
。因此它不会给您带来任何崩溃并成功转换为String值

注意:在使用
AnyObject
时,变量具有member
stringvalue
…但Int不必…将Int-value检出@Dharmesh Kheni-answer