2015-09-29 3 views

ответ

1

Оба линяют Int в String, но это больше не будет работать. В Swift 2 это невозможно сделать так.

U следует использовать:

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

Это определенно записать значение INT в виде строки

7

.stringValue является способ извлечения Integer в строковое значение, но as String не будет работать, что и при использовании as String, то Xcode заставит вас добавить ! с as, что не очень хорошо, и это никогда не будет успешным, и это приведет к сбою вашего приложения. вы не можете наложить Int на String. Он всегда будет терпеть неудачу. Вот почему, когда вы делаете as! String, это приводит к сбою приложения.

Так что отливка здесь не очень хорошая идея.

А вот еще несколько способов извлечения Integer в строковое значение:

let i : Int = 5 // 5 

let firstWay = i.description // "5" 
let anotherWay = "\(i)"  // "5" 
let thirdWay = String(i)  // "5" 

Здесь вы не можете использовать let forthway = i.stringValue, потому что Int Не имеет член с именем stringValue

Но вы можете сделать то же самое с anyObject, как показано ниже:

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. 
+0

Ясно answer.Should принять как ответ. –

1

с as String, вы не можете привести значение, но вы определите, что переменная содержит String, но в вашем случае это Int .so это сбой.

, в то время как другим способом, то есть i.stringValue, введите свое значение в String. Так оно не дает вам никакого сбоя и успешно сбрасывается в значение String.

Примечание: Как вы используете AnyObject, переменная есть член stringvalue ... но Int не имеет ... Для того, чтобы бросить значение Int проверить @Dharmesh Kheni ответ

Смежные вопросы