我正在创建一个应该返回2d单词数组的函数。一次是英语,一次是斯洛伐克语。这些单词存储在TXT文件中。我理解txt并且它正在工作,但编译器似乎在返回NSString 2d数组时遇到问题。你能看一下吗?
这是函数的最后一行,只有一行给出错误: 不兼容的指针类型从结果类型为'NSString'的函数返回'NSString * __ strong [[array count]] [2]'
- (NSString*) getWordArray
{
NSArray *array = [self getTxtArray];
NSString *str[[array count]] [2];
for(int i = 0; i < [array count]; i++)
{
NSArray *translation = [array[i] componentsSeparatedByString:@" "];
str[i][0] = [translation objectAtIndex:0];
str[i][1] = [translation objectAtIndex:1];
}
return str;
}
这些功能正常。只是为了告诉你如果你感兴趣,因为它们被用在有问题的
中- (NSString*) getTxt
{
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"txt"];
if (filePath)
{
NSString *contentOfFile = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
return contentOfFile;
}
return @"";
}
- (NSArray*) getTxtArray
{
NSArray* array = [[self getTxt] componentsSeparatedByString:@"\n"];
return array;
}
答案 0 :(得分:1)
您需要将NSMutableArray
用于2D字符串数组。您的getWordArray
方法如下所示:
- (NSArray *)getWordArray
{
NSArray *array = [self getTxtArray];
NSMutableArray *strArray = [NSMutableArray array]; // This is your 2D array
for(int i = 0; i < [array count]; i++)
{
NSArray *translation = [array[i] componentsSeparatedByString:@" "];
// translation is assumed to be an array with two elements
[strArray addObject:translation];
}
return strArray;
}
这是因为2D数组是一个数组数组,并且由于componentsSeparatedByString:
返回一个数组,我们可以将每个数组填充到一个容器数组中。