我试图使用@字符作为NSDictionary中的键,我的应用程序只是崩溃。我搜索了“无效”键名,无法在任何地方找到@“@”。如果我使用@“@”以外的东西,它一切正常。@字符作为NSDictionary中的键
我有一个公约的列表,我得到每个公司的第一个字母,然后我创建一个NSMutableDictionary条目,其中包含第一个字母作为键和一个NSMutableArray作为值。
NSMutableDictionary indexDictionary = [[NSMutableDictionary alloc] init];
// here we have a loop on companyName
{
NSString *fristLetter = [[companyName substringToIndex:1] uppercaseString];
NSMutableArray *arrayOfIndexedCompanies = [indexDictionary valueForKey:firstLetter];
if (arrayOfIndexedCompanies) {
[arrayOfIndexedCompanies addObject:companyName]
}
else {
NSMutableArray *newArray = [NSMutableArray array];
[indexDictionary setObject:newArray forKey:firstLetter];
[newArray addObject:companyName];
}
}
我启用了扔断点休息,它停靠在[indexDictionary valueForKey:firstLetter] ...只有当firstLetter是@ “@”。 我如果说有一个:
if ([firstLetter isEqualToString:@"@"]) {
firstLetter = @"A";
}
并能正常工作,它正确地放置@首发公司的A部分。如果我让第一个信件保持不变(将其保留为@“@”),则应用程序将崩溃。
此外,这不是我的代码,我只是想解决它,我不是很熟悉ObjC和Foundation,所以请温和。
有什么问题吗? – Jasper 2012-04-23 13:04:18
我试图找出是否有其他人有同样的问题,有没有办法逃避/解决这个问题,并使用@作为关键? – andrei 2012-04-23 13:08:03
然后把这个问题。 (虽然跳过“其他人经历过这个”部分,因为这里不是真正的问题)另外,你为什么想要? – Jasper 2012-04-23 13:10:08