-3
NSString* promocode = @"DISCOUNT20";
[attributes setObject:[promocode length]>0?promocode:@"Valid Promo Code" forKey:ATT_BookingPromoCode];
At Console:
{
  "Promo Code" = DISCOUNT20;
}

NSString* promocode = @"Jan20%";
[attributes setObject:[promocode length]>0?promocode:@"Valid Promo Code" forKey:ATT_BookingPromoCode];
At Console:
{
  "Promo Code" = "Jan20%";
}

为什么要引用差异?我应该怎么做才能避免这种情况?

需要知道差异,因为

我正在为 Localytics 准备字典,在某些情况下我会得到 [未指定] 值。可能是因为没有考虑“值”而发生这种情况。因为 [Unspecifed] 仅在您发送空值或空值时出现。但我已经为此设定了条件。虽然我在 localytics 得到了未指定的值。这就是为什么我在准备要发送的字典时出错的原因。

提前致谢。

4

1 回答 1

1

不同之处在于

NSString* promocode = @"Jan20%";

包含一个 % (用于转义的字符)并且您实际打印了字典而不是字符串对象

举个例子

NSDictionary *d = @{@"test1":@"Discount20", @"test2":@"jan20%"};
for (id key in [d allKeys]) {
    NSLog(@"%@", [d objectForKey:key]);
}
/* Output :
   Discount20
   jan20%
*/
NSLog(@"%@",d);
/* Output     
   {
    test1 = Discount20;
    test2 = "jan20%";
}
于 2015-01-23T08:20:19.240 回答