如何指定格式化的NSString常量

时间:2013-01-30 10:15:10

标签: iphone ios nsstring uikit stringwithformat

我有一些预定义字符串格式,我想在运行时将值填充到用户并呈现给用户。我想将它们存储为constantsdefines,无论哪种更适合。

类似的东西:

@% has sent you a message on @%-@%-@%.

在运行时,上面将获取发件人姓名和mm-dd-yy以准备所需的字符串:

James Bond has sent you a message on 12-31-2050.

任何人都可以指出代码来实现这样的事情吗?

编辑: 与许多人(特别是贬低者!)相信的相反:

这不仅仅是string formatting question。它被发布以确保:

  • 字符串格式存储是内存效率的(静态vs定义与其他任何东西)因为我想永久存储格式,而不仅仅是在使用时
  • 运行时的值替换是时间效率的(stringWithFormat vs其他选项)

5 个答案:

答案 0 :(得分:2)

试试这个..可能会帮助你。

 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"dd-MM-yyyy"];
    NSDate *now = [[NSDate alloc] init];

    NSString *theDate = [dateFormat stringFromDate:now];
     NSLog(@"theDate..%@",theDate);
    NSString *str = @"yourString";
    NSString *new =  [NSString stringWithFormat:@"%@ has sent you a message on %@", str, theDate];

答案 1 :(得分:1)

使用[NSString stringWithFormat:@"%@ has sent you a message on %@", who, date]

答案 2 :(得分:1)

你可以这样做:

在顶部,

#define MESSAGE @"%@ has sent you a message on %@-%@-%@."

然后,只要您想使用该消息,请使用以下syntex:

[NSString stringWithFormat:MESSAGE, <sender_name>, <date>, <month>, <year>];

sender_name,date,month,year是动态值。

希望,你有个主意。

快乐的编码!

干杯!

答案 3 :(得分:1)

首先,您需要获取当前日期

NSDateFormatter *date= [[NSDateFormatter alloc] init];
    [date setDateFormat:@"MM-dd-yyyy"];
    NSDate *thisDate= [[NSDate alloc] init];

NSString *currentDate= [date stringFromDate:thisDate];
 NSLog(@"Current date is..%@",currentDate);

现在您可以在运行时输入任何字符串

 NSString *strng = @"whatever kind of string which you want to add at runtime";
    NSString *newString=  [NSString stringWithFormat:@"%@ has sent you a message on %@", strng, currentDate];

“newString”的值将为您提供所需的结果。

答案 4 :(得分:0)

使用         #define messageString(x,y,z)[NSString stringWithFormat:@“%@已在%@ - %@ - %@上向您发送了一条消息。”,x,y,z]