我正在尝试创建一个值数组,在打印时,它们将如下所示:
{
headerTitle = "#";
rowValues = (
""
);
} {
headerTitle = A;
rowValues = (
"Abaco Barb",
Abenauer,
"Australian Stockhorse",
);
} {
headerTitle = B;
etc…
程序失败,并在下面的语句中出现"doesNotRecognizeSelector:"
错误。
数组定义为:
NSMutableArray *words = [[NSMutableArray alloc]init];
相关代码:
else
{
letterString = [[dataArray objectAtIndex:i] substringToIndex:1];
NSLog(@"lastLetter = %@",lastLetter);
NSLog(@"letterString = %@",letterString);
if ([lastLetter isEqualToString: letterString])
{
NSLog(@"before words, dataArray %@", [dataArray objectAtIndex:i]);
//(FAILS on the next instruction on adding [dataArray objectAtIndex:i] =
// Abenauer)
[words addObject:[dataArray objectAtIndex:i]];
NSLog(@"words - %@",words);
NSLog(@"after words");
}
else
{
NSMutableDictionary *row = [[NSMutableDictionary alloc] init];
[row setValue:lastLetter forKey: @"headerTitle"];
[row setValue: words forKey:@"rowValues"];
[content addObject:row];
NSLog(@"content - %@",content);
lastLetter = letterString;
words =[dataArray objectAtIndex:i];
NSLog(@"words - %@",words);
}
}
失败前创建的OUTPUT:
2014-03-21 11:37:42.967 EquineDiary[1864:a0b] lastLetter = #
2014-03-21 11:37:42.967 EquineDiary[1864:a0b] letterString = A
2014-03-21 11:37:42.968 EquineDiary[1864:a0b] content - (
{
headerTitle = "#";
rowValues = (
);
}
)
2014-03-21 11:37:54.434 EquineDiary[1864:a0b] words - Abaco Barb
2014-03-21 11:37:54.435 EquineDiary[1864:a0b] lastLetter = A
2014-03-21 11:37:54.436 EquineDiary[1864:a0b] letterString = A
2014-03-21 11:37:54.436 EquineDiary[1864:a0b] before words, dataArray Abtenauer
提前感谢您的帮助。
注1: 整个错误是" CoreFoundation`- [NSObject(NSObject)doesNotRecognizeSelector:]:"单词在Method的开头定义,在for循环之外。 " Abaco Barb"当我试图添加" Abtenauer"在[dataArray objectAtIndex:i]。
中我所要做的就是把所有以" A"进入一个数组(单词),直到该单词不再以A开头,此时我将单词数组写入一行,其中键为#34;行值"。 A使用键"标题标题"。
写入该行注2:
我发现了这个问题,但不知道如何修复它。在我将数据写入行之后,我得到了代码" words = [dataArray objectAtIndex:i];"为了擦除先前的值(即" A"值),我可以开始添加以下一个字母开头的单词(即" B")。在我这样做之后,它不喜欢在文字中添加对象。为什么是这样?什么是擦除值重新开始的最佳方法?
答案 0 :(得分:0)
看起来Abenauer不是一个字符串。它周围没有引号。
答案 1 :(得分:0)
如果你想要一个新阵列,只需创建一个新阵列。
words = [[NSMutableArray alloc] init]