我正在使用下面的代码创建一个NSDictionary,并且我希望当originalMessageId.intValue == -1时,密钥@“originalMessageId”包含[NSNull null]。
但是我的Logger writeToLogFile方法给出了以下输出:
2014-04-07 19:16:52: JSON Params: {
addressId = 1;
}
我已将代码删除到仅尝试添加两个密钥的位置,但仍然没有添加originalMessageId密钥。
我哪里错了?
P.S。当我将应用程序作为分发版本加载时代码失败,但是当我将应用程序作为开发版本加载时似乎有效。
NSDictionary *jsonDict;
SourcePhoneNumber *sourcePhoneNumber = [DatabaseInterface fetchDefaultSourceNumber];
[Logger writeToLogFile:[NSString stringWithFormat:@"sourcePhoneNumber = %@", sourcePhoneNumber]];
if (originalMessageId.intValue == -1)
{
//NSString *uuidString = [[NSUUID UUID] UUIDString];
jsonDict = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithUnsignedLongLong:1], @"addressId", /* should be sourcePhoneNumber.addressId */
//messageBody, @"messageBody",
//contacts, @"contacts",
//uuidString, @"clientId",
[NSNull null], @"originalMessageId",
nil];
}
else
{
jsonDict = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithUnsignedLongLong:1], @"addressId", /* should be sourcePhoneNumber.addressId */
originalMessageId, @"originalMessageId",
messageBody, @"messageBody",
contacts, @"contacts",
nil];
}
[Logger writeToLogFile:[NSString stringWithFormat:@"JSON Params: %@", jsonDict]];
答案 0 :(得分:3)
如果originalMessageId
为nil
,您会看到输出。这会导致if
条件无法转到else
部分。如果`originalMessageId
为nil
,那么nil
会在此时终止字典的创建,只留下addressId
密钥及其值。
因此,您需要确定originalMessageId
为nil
的原因。