如何在Objective-C中使用数字实现索引表查看?

时间:2015-10-07 09:49:21

标签: ios objective-c

我尝试使用数字实现Indexed tableview但我无法实现,因为它在我的代码中有一些问题所以请帮我实现它?

这里我已经在字符串中声明了数字,但我想进入数组,所以请说明如何在数组中获取这些值?

这是我尝试过的代码......

NSString *numbers = @"100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000";
self.tableData = [numbers componentsSeparatedByString:@" "];
numbers = @"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20";
self.indexTitlesArray = [numbers componentsSeparatedByString:@" "];

2 个答案:

答案 0 :(得分:1)

喜欢这个

NSArray *self.indexTitlesArray = @[@"1", @"2",@"3", @"4",@"5", @"6",@"7", @"8",@"9", @"10",@"11", @"12",@"13", @"14",@"15", @"16",@"17",@"18",@"19",@"20", nil];

委托方法是

 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
     return self.indexTitlesArray;
 }

其他reference

你需要相同的答案

 NSString *numbers = @"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20";
 NSArray *arr = [numbers componentsSeparatedByString:@" "];
 self.indexTitlesArray = [arr mutableCopy]; 

  - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
   {
     return self.indexTitlesArray;
    }

在控制台中输出

enter image description here

答案 1 :(得分:0)

您已使用 componentsSeparatedByString 将每个数字与给定字符串分开。

它总是返回包含子串的数组。如果您希望在NSInteger或int等其他数据类型中获取结果数组,则必须手动执行此操作。您可以为循环中的每个元素运行循环,并执行从NSString到int的类型转换。

从NSString类型转换为int:

int dataValue = [@"100" intValue];

以下是 componentsSeparatedByString: NSString 的参考:

返回一个数组,其中包含接收器中已被给定分隔符划分的子串。

声明

- (NSArray<NSString *> * _Nonnull)componentsSeparatedByString:(NSString * _Nonnull)separator

参数分隔符:分隔符字符串。

返回值:一个NSArray对象,包含已被分隔符划分的接收器的子串。

讨论:

数组中的子串按照接收器中的顺序显示。相邻的分隔符字符串出现在结果中产生空字符串。类似地,如果字符串以分隔符开头或结尾,则第一个或最后一个子字符串分别为空。

例如,此代码片段:

NSString *list = @"Karin, Carrie, David";

NSArray *listItems = [list componentsSeparatedByString:@", "];

生成一个数组{ @"Karin", @"Carrie", @"David" }.

如果列表以逗号和空格开头 - 例如@", Norman, Stanley, Fletcher" - 数组包含以下内容:{ @"", @"Norman", @"Stanley", @"Fletcher" }

如果list没有分隔符 - 例如,"Karin"数组包含字符串本身,在本例中为{ @"Karin" }

您可以找到更多详细信息here