Swift字符串格式说明符等效于%@

时间:2016-02-17 15:53:44

标签: xcode string swift format

我正在使用Swift中的表单编写一个简单的应用程序,我使用Objective-C编写的应用程序使用视图中的文本字段中的数据填充电子邮件,我使用以下代码执行此操作:

#include <stdio.h>

#define N 10

int main( void )
         ^^^^^
{      
    int a[N];
    int greatest;
    int i;     

    for ( i = 0 ; i < N ; i++ ) scanf( "%d", &a[i] );
                                             ^^^^^ 
    greatest = a[0];
    ^^^^^^^^^^^^^^^^
    for ( i = 1 ; i < N ; i++ )
    {
        if ( greatest < a[i] ) greatest = a[i];
             ^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^
    }

    printf( "%d\n", greatest );
                  ^^^^^^^^

    return 0;
}

我试图在Swift中实现同样的目标,到目前为止我有以下内容:

NSString *messageBody = [NSString stringWithFormat:@"Name: %@ \nDate: %@", NameField.text, DateField.text];

我正在寻找相当于let messageBody = NSString(format: "Name: %@ \nDate: %@", NameField, DateField) 的swifts,以使应用看到字符串的格式,以便在"%@"之后找到要放置的数据。

3 个答案:

答案 0 :(得分:12)

在Swift中,您使用\(some_printable_object_or_string)

let string = "Name: \(NameField) \nDate: \(DateField)"

或者您可以使用ObjectiveC样式格式

let string = String(format: "Name: %@ \nDate: %@", NameField, DateField)

答案 1 :(得分:4)

不要只将Obj-c移植到Swift。斯威夫特有自己的做事方式。

let message = "Name: \(nameField) \nDate:\(dateField)"

答案 2 :(得分:2)

使用String Interpolation

    let firstName = "Hai"
    let date = NSDate()
    let messageBody = NSString(format: "Name: \(firstName) \n Date: \(date)")
    NSLog(messageBody as String)