我已经尝试了大约三天的时间来让它工作,并让我的思想围绕着它。有没有人能建议一下。我已经建立了基础,它们都工作得很好,但当我尝试做额外的工作时,我无法理解它。我正在尝试建立一个技术术语表,从plist开始。这是一个按字母表索引的and节表。这很好用,但是当我尝试在新的视图控制器中为每个术语的定义添加下一个级别时,我似乎无法获得正确的代码或plist结构。目前,我已经创建了两个plist。其中一个有26个数组的字母表字典,每个数组内有一系列技术术语。所有这些都运行得很好。然后,我创建了另一个定义plist,作为一个字典数组,每个单词/定义对一个字典。我期望将@"word“键从视图控制器传递到detailviewcontroller,然后获取@”定义“。我不知道这是对还是错(?)我的代码显示了技术术语table great,但是当一行被选中时,它就崩溃了。我知道这与传递detailviewcontroller的引用的代码有关,因此detailview可以提取定义-但我不知道如何解决它。我已经在这里发布了我的部分代码,以供他人查看帮助。有什么想法吗?
NSString *wordPath = [[NSBundle mainBundle] pathForResource:@"newsortedglossary" ofType:@"plist"];
NSDictionary *wordDict = [[NSDictionary alloc] initWithContentsOfFile:wordPath];
self.words = wordDict;
[words release];
NSArray *wordArray = [[words allKeys] sortedArrayUsingSelector:@selector(compare:)];
self.wordKeys = wordArray;
NSString *definitionPath = [[NSBundle mainBundle] pathForResource:@"newnewdefinitionglossary" ofType:@"plist"];
NSDictionary *definitionDict = [[NSDictionary alloc] initWithContentsOfFile:definitionPath];
self.definitions = definitionDict;
[definitions release];didSelectRow在这里.......
GlossaryDetailViewController *glossaryDetailViewController = [[GlossaryDetailViewController alloc]
initWithNibName:@"GlossaryDetailView" bundle:nil];
NSLog(@"did select-2"); // CRASHES HERE with NSDictionary may not respond to objectAtIndex
glossaryDetailViewController.definition = [self.words objectAtIndex:indexPath.row];
NSLog(@"did select-3");
[self.navigationController pushViewController:glossaryDetailViewController animated:YES];
NSLog(@"did select-4");
[glossaryDetailViewController release];detailViewController在这里......
- (void)viewDidAppear:(BOOL)animated {
NSLog(@"didappear");
self.glossaryWordDefinition.text = [definition objectForKey:@"definition"];发布于 2009-12-25 07:45:15
您似乎正在尝试使用索引来访问字典的成员,而不是使用键来查找关联值。
在你的didSelectRow中,你可能想要这样:
glossaryDetailViewController.definition = [self.wordKeys objectAtIndex:indexPath.row];不同之处在于,现在您正在尝试使用索引访问数组的成员。
https://stackoverflow.com/questions/1960053
复制相似问题