创建NSDictionary dictionaryWithObjectsAndKeys时无提示崩溃

时间:2013-05-13 20:28:39

标签: ios objective-c nsdictionary

Profile *profile = [[Profile alloc] init];

NSLog(@"badgeId is %@", badgeId);

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:[profile getAuthenticationToken], @"auth_token", badgeId, "badge_id", title, "title", nil];

它在返回方法getAuthenticationToken(返回一个字符串)后静默崩溃。它似乎转到内存引用然后崩溃。返回以下内容的行上的badgeId上的println:

badgeId is 97

2 个答案:

答案 0 :(得分:8)

一个问题是像"badge_id"这样的C字符串不是一个好的NSDictionary密钥。使用NSString对象,例如@"badge_id"

答案 1 :(得分:2)

字典的键必须是实现NSCopying-Protocol的对象。 C字符串不是(Objective-C)对象,因此不实现NSCopying。