0

我正在尝试合并两个类对象,如下所示

Class College{ 
      name,
      collegeName,
      students(Array)
}

我正在为这个名为objCollegeAobjCollegeB的类创建两个对象。

如果我为这些对象分配以下值

objCollegeA.name = @"name1"
objCollegeA.collegeName = @"collegeName2"
objCollegeA.students = [NSArray arrayWithObjects:@"test1",@"test2",nil];

对于第二个对象,我分配以下值

objCollegeB.name = @"name1"
objCollegeB.collegeName = @"collegeName2"
objCollegeB.students = nil;//Here this array is nil

现在我需要合并这两个对象,如下所示

objCollegeA + objCollegeB => objCollegeA with Values {@"name1",@"collegeName2", [NSArray arrayWithObjects:@"test1",@"test2",nil];}

这意味着我需要合并两个对象并将 nil 值替换为第二个对象中的值并返回。有没有办法在目标C中做到这一点?

预先感谢您的回复。

4

3 回答 3

0

您是否总是将collegeA 的nil 属性设置为collegeB 的那些属性,并使非nil 与collegeA 中的属性相同?如果是这样,你可以这样做:

-(College)addCollege:(College *)collegeB {
    if (!self.name) self.name = collegeB.name;
    if (!self.collegeName) self.collegeName = collegeB.collegeName;
    if (!self.students) self.students = collegeB.students;
}

然后你可以打电话:

[collegeA addCollege:collegeB];

请注意,这会将它们设置为相同的对象,而不是复制对象。

于 2013-03-20T07:01:15.560 回答
0

College只需在类中创建您的 add 方法

- (void)add:(College*)obj
{
    if(name == nil)
    {
        name = obj.name;
    }
    if(collegeName == nil)
    {
        collegeName = obj.collegeName;
    }
    if(students == nil && obj.students != nil)
    {
        students = [NSArray arrayWithArray:obj.students];
    }
}
于 2013-03-20T07:01:40.873 回答
0

如果我理解您的问题,那么首先您需要修改此语句:

objCollegeA.students = [NSMutableArray arrayWithObjects:@"test1",@"test2",nil];

然后[objCollegeA.students addObjectsFromArray:objCollegeB.students];

如果您需要使用 objCollegeB.name 更改 objCollegeA.name,请执行以下操作:

objCollegeA.name = objCollegeB.name;

objCollegeA.collegeName = objCollegeB.collegeName;

于 2013-03-20T07:49:31.413 回答