我正在尝试合并两个类对象,如下所示
Class College{
name,
collegeName,
students(Array)
}
我为这个名为 objCollegeA 和 objCollegeB 的类创建了两个对象。
如果我为这些对象分配以下值
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中有没有办法做到这一点?
提前感谢您的回复。
答案 0 :(得分:0)
你是否总是将大学A的nil属性设置为大学B的属性并且将非零属性与大学A中的属性相同?如果是这样,你可以这样做:
-(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];
请注意,这会将它们设置为相同的对象而不是复制对象。
答案 1 :(得分:0)
只需在College
类
- (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];
}
}
答案 2 :(得分: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;