在程序的一部分的两个阵列内我的工作,我需要计算所有的时候,每个人有每个人的其他项目的工作。假设我们有“员工”实体和“会话”实体。在每个会话中,有四个项目类型,分别是“A”,“B”,“C”,&“D”,每个项目类型都与员工建立多对多关系。检索关系从指针
我正在做一个循环来系统地审查每个人所选择的人合作过。首先,我将他们所有的项目类型放在一个数组中,所以它更容易循环,但是当我问最后一个嵌套的Project作为它的Employee成员时,我得到一个“无法识别的选择器”的错误。
IBOutlet NSArrayController * superList;
编辑:我忘了表示这个数组,指向控制器的arrangeObjects。
NSArray * list = [superList arrangedObjects];
int x;
for(x = 0; x < [list count]; x++){
NSArray *A = [[list objectAtIndex:x] valueForKey:@"projectAs"];
NSArray *A = [[list objectAtIndex:x] valueForKey:@"projectBs"];
NSArray *A = [[list objectAtIndex:x] valueForKey:@"projectCs"];
NSArray *A = [[list objectAtIndex:x] valueForKey:@"projectDs"];
NSArray *masterList = [[NSArray alloc] initWithObjects: projectAs, projectBs, projectCs, projectDs, nil];
int y;
for(y = 0; y < [masterList count]; y++){
int z;
for(z = 0; z < [[masterlist objectAtIndex:y] count]; z++){
//And now to make an Array of this employee's partners on the selected object, to run comparisons on.
//I also have an array of keys for each session's teams, so that's what I'm referencing here:
NSArray * thisTeam = [list objectAtIndex:y] objectAtIndex:z] valueForKey:projectKey];
这将引发异常......即 - [_ NSFaultingMutableSet objectAtIndex:]:无法识别的选择发送到实例
出了什么问题,去年数组创建?
我看不出有什么理由要在这里使用'objectAtIndex:'而不是快速枚举:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocFastEnumeration。 html#// apple_ref/doc/uid/TP30001163-CH18-SW1它不会解决您的问题(并且您应该只在此之后进行更改),但它会使代码更易于阅读。 – 2010-03-19 23:41:07
这是我在Python中知道的一个重要特性,但没有在Kochan的Obj-C书中读过。非常感谢分享! – DanF 2010-03-21 04:00:03