【问题标题】:Swift NSString to String on LinuxSwift NSString 到 Linux 上的字符串
【发布时间】:2016-01-06 19:35:51
【问题描述】:

在文档中我找到了文章:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/WorkingWithCocoaDataTypes.html

还有一个代码:

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 上却不行。 我收到一个错误:

错误:无法将“NSString”类型的值转换为“String”类型 强制 if let integerValue = Int(myString as String) {

【问题讨论】:

  • 我从未在 linux 上尝试过 Swift,所以我不知道它是如何工作的,但您是否可能在您的 linux 设置上使用较旧的 Swift (
  • 我在 mac 上尝试了 swift 2.2 和 Linux 上 swift 2.2

标签: swift


【解决方案1】:

如果无法访问 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)")
}

【讨论】:

  • 你可以在这里测试:swiftlang.ng.bluemix.net/?cm_mmc=developerWorks--dWdevcenter--swift-_-lp&cm_mc_uid=11602763416914412976120&cm_mc_sid_50200000=1451194962#/repl
  • 不! NSString 在这个实现中被彻底破坏了。 myString.description 返回错误结果,myString.integerValue 在输出中产生未知错误。
猜你喜欢
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 2015-03-03
  • 2014-07-23
  • 2014-07-25
  • 1970-01-01
  • 2015-04-06
  • 2017-05-22
相关资源
最近更新 更多