我怎么能在多行分割字符串,如下面?

var text:String = "This is some text
                   over multiple lines"

当前回答

样本

var yourString = "first line \n second line \n third line"

以防您发现+运算符不合适

其他回答

一种方法是将标签文本设置为attributedText,并更新字符串变量以包含换行符的HTML (<br />)。

例如:

var text:String = "This is some text<br />over multiple lines"
label.attributedText = text

输出:

This is some text
over multiple lines

希望这能有所帮助!

正如litso所指出的,在一个表达式中重复使用+-操作符会导致Xcode Beta挂起(刚刚用Xcode 6 Beta 5检查过):Xcode 6 Beta无法编译

目前,多行字符串的另一种替代方法是使用一个字符串数组,并将其压缩为+:

var text = ["This is some text ",
            "over multiple lines"].reduce("", +)

或者,可以更简单地使用join:

var text = "".join(["This is some text ",
                    "over multiple lines"])

从Swift 4.0开始,可以使用多行字符串,但有一些规则:

你需要用三个双引号"""来开始和结束字符串。 你的字符串内容应该从它自己的行开始。 结尾的"""也应该在自己的行上开始。

除此之外,你就可以开始了!这里有一个例子:

let longString = """
When you write a string that spans multiple
lines make sure you start its content on a
line all of its own, and end it with three
quotes also on a line of their own.
Multi-line strings also let you write "quote marks"
freely inside your strings, which is great!
"""

查看Swift 4的新功能以获得更多信息。

另一种方法是,如果你想使用带有预定义文本的字符串变量,

var textFieldData:String = "John"
myTextField.text = NSString(format: "Hello User, \n %@",textFieldData) as String
myTextField.numberOfLines = 0

这是我注意到的斯威夫特的第一件令人失望的事情。几乎所有脚本语言都允许多行字符串。

c++ 11添加了原始字符串字面值,允许您定义自己的终止符

c#有它的@literals用于多行字符串。

即使是普通的C以及老式的c++和Objective-C也允许通过将多个文字相邻放置来进行连接,因此引号被折叠。当你这样做的时候,空格不算数,所以你可以把它们放在不同的行上(但需要添加你自己的换行符):

const char* text = "This is some text\n"
                   "over multiple lines";

由于swift不知道你已经把你的文本超过多行,我必须修复connor的样本,类似于我的C样本,显式地声明换行:

var text:String = "This is some text \n" +
                  "over multiple lines"