Objective c 使用核心数据的视图控制器索引的不同值数组
我试图创建一个索引,表示核心数据存储区中每个记录的第一个字母值,以便在表视图控制器中使用。我使用的是苹果文档中的一段代码。我只想生成一个数组或不同值的字典作为结果。我的存储区已经在每个记录对象中定义了该字符。问题: 1) 我在理解NSDictionaryResultType时遇到问题。从何处接收生成的dictionary对象,以便我可以将其键分配给视图控制器?代码似乎只返回一个数组 2) 如果包含包含NSDictionaryResultType的行,则不会得到任何返回 3) 我意识到我可以在一个循环中完成这项工作,但我希望这能奏效 谢谢Objective c 使用核心数据的视图控制器索引的不同值数组,objective-c,iphone,core-data,dictionary,uiviewcontroller,Objective C,Iphone,Core Data,Dictionary,Uiviewcontroller,我试图创建一个索引,表示核心数据存储区中每个记录的第一个字母值,以便在表视图控制器中使用。我使用的是苹果文档中的一段代码。我只想生成一个数组或不同值的字典作为结果。我的存储区已经在每个记录对象中定义了该字符。问题: 1) 我在理解NSDictionaryResultType时遇到问题。从何处接收生成的dictionary对象,以便我可以将其键分配给视图控制器?代码似乎只返回一个数组 2) 如果包含包含NSDictionaryResultType的行,则不会得到任何返回 3) 我意识到我可以在一个
NSEntityDescription *entity = [NSEntityDescription entityForName:@"People" inManagedObjectContext:managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
[request setResultType:NSDictionaryResultType]; // This line causes no no results.
[request setReturnsDistinctResults:YES];
[request setPropertiesToFetch :[NSArray arrayWithObject:@"alphabetIndex"]];
NSError *error;
NSArray *objects = [managedObjectContext executeFetchRequest:request error:&error];
NSArray *letters = [objects valueForKey:@"alphabetIndex"];
NSArray *letters = [objects valueForKey:@"alphabetIndex"];
谢谢你,杰瑞。我想出来了。我对我的核心数据类和存储进行了更改。我删除了SQLite文件并重新编译。谢谢gerry3。我想出来了。我对我的核心数据类和存储进行了更改。我删除了SQLite文件并重新编译。如果我添加包含“setResultType:NSDictionaryResultType”的行,则在获取之后生成的数组*对象为零。如果我注释掉这行,我会得到63个对象,代表实体“People”的所有对象。有一个名为“字母索引”的属性,其中包含代表人名第一个字母的值a-z。为了简短起见,我想要一个表示唯一值的字典或数组。如果在场的人只有安斯顿、弗兰克斯、约翰逊和史密斯,我会创建一个值为“A、F、J、S”的数组。正如我在上面的更新中所示,创建该数组非常容易。如果我添加包含“setResultType:NSDictionaryResultType”的行,则在获取之后,生成的数组*对象为零。如果我注释掉这行,我会得到63个对象,代表实体“People”的所有对象。有一个名为“字母索引”的属性,其中包含代表人名第一个字母的值a-z。为了简短起见,我想要一个表示唯一值的字典或数组。如果在场的人只有安斯顿、弗兰克斯、约翰逊和史密斯,我会创建一个值为“A、F、J、S”的数组。正如我在上面的更新中所示,创建该阵列非常容易。