2016-01-06 59 views
2

在文檔中,我發現文章:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/WorkingWithCocoaDataTypes.html斯威夫特的NSString字符串在Linux上

和代碼:

import Foundation 
let myString: NSString = "123" 
if let integerValue = Int(myString as String) { 
    print("\(myString) is the integer \(integerValue)") 
} 
// prints "123 is the integer 123" 

在它的工作的MacOS,但在Lunux沒有。 我得到了一個錯誤:

error: cannot convert value of type 'NSString' to type 'String' in coercion if let integerValue = Int(myString as String) {

+0

我從來沒有嘗試過斯威夫特在Linux上,所以我不能說如何,即使是工作,但你可能使用的是舊斯威夫特(<2.0)的版本在你的Linux建立? – dfri

+0

我在swift 2.2和Linux上用swift 2.2在mac上試過 – zig1375

回答

0

沒有進入到Linux編譯器...我建議以下解決方法。

let myString: NSString = "123" 
if let integerValue = Int(String(myString)) { 
    print("\(myString) is the integer \(integerValue)") 
} 

let myString: NSString = "123" 
if myString.isEqualToString("0") || myString.integerValue != 0 { 
    print("\(myString) is the integer \(myString.integerValue)") 
} 
+0

你可以在這裏測試:http://swiftlang.ng.bluemix.net/?cm_mmc=developerWorks-_-dWdevcenter-_-swift-_-lp&cm_mc_uid=11602763416914412976120&cm_mc_sid_50200000= 1451194962#/ repl – zig1375

+0

不! 'NSString'在這個實現中被無望地破壞了。 'myString.description'返回錯誤的結果,'myString.integerValue'在輸出中產生一個未知的錯誤。 –