Objective C:无法将Object的副本分开,最后一个传递的值始终被覆盖

问题描述 投票:0回答:1

我有雇员的对象列表,为此,我需要从两个不同的Web服务调用EmployeeDetails和EmployeeSkills数据。

关于我拥有的雇员列表,我正在调用一个类SyncData,而我正在调用两个WS。

//员工清单代码

> mainpage.m
> 
> if(employeeResponse.employeeList.count > 0){
>                NSMutableArray *arraySync = [[NSMutableArray alloc] init];
>                for(int i=0; i < employeeResponse.employeeList.count;i++){
>                    SyncData *objSyncData = [[SyncData alloc] init];
>                    [arraySync addObject:objSyncData];
>                 } // here intialized download data class in array
> 
> 
>                for(int i=0; i < todaySchedule.todaysVisitList.count;i++){
>                    Employee *employee = [employeeResponse.employeeList objectAtIndex:i];
>                    [[arraySync objectAtIndex:i] loadEmployeeData:employee];
>                } // here calling method to get data for each object separately
> 
>            }

// SyncData代码

SyncData.h

property Employee* commonEmployee;
property EmployeeDetails* commonEmployeeDetails;

SyncData.m

-(void) loadEmployeeData:(Employee*)employee{
  commonEmployee = [employee]; // I have also tried commonEmployee = [employee copy];
  [self getEmployeeDetails:commonEmployee];
}

-(void)getEmployeeDetails:(Employee*)empl{
  // Using empl.empID making ws call to method GETEMPLOYEEDETAILS
}

- (void)getEmployeeSkills:(EmployeeDetails*)emplDetails{
  // Using commonEmployee.empID making ws call to method GETEMPLOYEESKILLS
}

-(void)jsonCallback:(NSData*)result withMethod:(NSString*)method{
      if(method == GETEMPLOYEEDETAILS){
          // parse result into EmployeeDetails
          commonEmployeeDetails = result.parse;
          // now call method to get skills
           [self getEmployeeSkills:commonEmployeeDetails]; 
          // Now calling WS to get skills as it only matter if I have Details.               

      } else if (method == GETEMPLOYEESKILLS){
          // parse result into EmployeeSkills
          objEmployeeSkills = result.parse;

          // HERE IS ISSUE--------------------------------------
          objEmployeeSkills.eID = commonEmployee.empID ; // **here getting Last record value from Employee List**
          // Trying to save in DB now as it only matter if I have all 3 objects
           // save objEmployeeSkills 
          // save commonEmployeeDetails 
          // save commonEmployee
          **// Sometimes getting the last value of Employee from mainpage. m 
          // Sometimes getting null values in both Synthesize object**
      }
}

我必须一次将所有三个WS的值都下载到每个三个对象的DB中。

我需要知道一种可以构造我的两个类1的方法,用于下载EmployeeList和2用于下载其他两个与特定empID相关的详细信息,这样,当我收到JSONResponse时,我已经保存了这三个对象。与特定回复相关,然后将所有3个保存在一起。我需要对列表中的多个员工执行此操作。

有时从主页获取Employee的最后一个值。米有时在两个Synthesize对象中都获得空值

objective-c nsobject
1个回答
0
投票

很难准确说明您要做什么,但是您不应该逐步查看员工列表并将其作为员工对象进行访问吗?

for(employeeResponse.employeeList中的employee * empObj){}

然后调用每个员工的同步数据?

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.