我尝试使用数字实现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:@" "];
答案 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;
}
你需要相同的答案
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;
}
在控制台中输出
答案 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