在我的代码中,我使用lastname排序联系人,它显示LastName为null的错误。如何将null lastname排序为哈希符号。
这是我的代码
-(void)updateView:(NSArray*)contactsArray{
[self.dataArray removeAllObjects];
[self.sections removeAllObjects];
[self.dataArray addObjectsFromArray:contactsArray];
BOOL found;
for (Contact *contact in self.dataArray)
{
NSString *c = [[contact.lastName substringToIndex:1] uppercaseString];
found = NO;
for (NSString *str in [self.sections allKeys])
{
if ([str isEqualToString:c])
{
found = YES;
}
}
if (!found)
{
[self.sections setValue:[[NSMutableArray alloc] init] forKey:c];
}
}
// Loop again and sort the books into their respective keys
for (Contact *contact in self.dataArray)
{
[[self.sections objectForKey:[[contact.lastName substringToIndex:1] uppercaseString]] addObject:contact];
}
// Sort each section array
for (NSString *key in [self.sections allKeys])
{
[[self.sections objectForKey:key] sortUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"lastName" ascending:YES]]];
}
NSLog(@"Check %@",contactsArray);
[self.tableView reloadData];
}
答案 0 :(得分:1)
你做的每一个地方
[contact.lastName substringToIndex:1];
如果您可能有一个空字符串,则不安全,因为子字符串请求将始终抛出范围异常。您需要更改该代码。
简单的选项是预先检查length
,如果它太短,则替换其他已知值,以便将所有空的姓氏组合在一起。