如何在字母索引标题中设置#UITable for iphone中的数值

时间:2012-11-09 10:45:57

标签: iphone objective-c ipad uitableview

我使用链接http://www.devx.com/wireless/Article/43374

实现了字母部分标题

很好用。

我使用此逻辑将第一个字符作为索引

  // To implement indexes and section headers
  contactsArray = [[NSMutableArray alloc] init];
  for(int i=0; i< tableViewArray.count ; i++)
  {
        Contact *contact = [tableViewArray objectAtIndex:i];
        [contactsArray addObject:contact.name];
  }



 contactIndex = [[NSMutableArray alloc] init];
  for (int i=0; i<[contactsArray count]; i++){
        //---get the first char of each contactName---
        char alphabet = [[[contactsArray objectAtIndex:i] uppercaseString] characterAtIndex:0];

    NSString *firstChar = [NSString stringWithFormat:@"%C", alphabet];

    //---add each letter to the index array---
    if (![contactIndex containsObject:firstChar])
    {            
          [contactIndex addObject:firstChar];
    }        

}

但是如果是联系人,则返回 1,2,3 ......

enter image description here

But need to display # instead of all numaerical values headers

2 个答案:

答案 0 :(得分:0)

if (alphabet >= '0' && alphabet <= '9') alphabet = '#';

答案 1 :(得分:0)

使用 NSNumberFormatter 检查NSString是否为数字

// To implement indexes and section headers
  contactsArray = [[NSMutableArray alloc] init];
  for(int i=0; i< tableViewArray.count ; i++)
  {
        Contact *contact = [tableViewArray objectAtIndex:i];
        [contactsArray addObject:contact.name];
  }



 contactIndex = [[NSMutableArray alloc] init];
  for (int i=0; i<[contactsArray count]; i++){
        //---get the first char of each contactName---
        char alphabet = [[[contactsArray objectAtIndex:i] uppercaseString] characterAtIndex:0];

    NSString *firstChar = [NSString stringWithFormat:@"%C", alphabet];

   NSNumberFormatter *testFormatter = [[NSNumberFormatter alloc] init];

  if(nil == [testFormatter numberFromString: firstChar]){

      firstChar = @"#";
  }

    //---add each letter to the index array---
    if (![contactIndex containsObject:firstChar])
    {            
          [contactIndex addObject:firstChar];
    }       
}